C#与VB.NET获取Excel图片单元格坐标的方法

蓝鲸
蓝鲸
发布时间:2026-10-16 | 4人浏览过
原创

在处理Excel文档时,有时需要定位其中嵌入图片的具体单元格位置(即左上角顶点所在的行和列)。本文将演示如何利用C#和VB.NET语言,配合Spire.XLS组件,实现从Excel文件中提取图片坐标的完整流程,并提供详细的代码示例与操作说明。

准备工作与环境配置

本示例基于 Free Spire.XLS for .NET 类库进行开发。请确保你的项目中已引用该DLL或安装了相应NuGet包。版本建议为12.2或更高。

第1步:引入依赖库

你可以通过以下任一方式在Visual Studio中引入 Spire.Xls.dll:

  1. 手动添加引用:下载并安装 Free Spire.XLS for .NET 安装包,在安装目录下的BIN文件夹中找到 Spire.Xls.dll。打开VS解决方案资源管理器,右键点击“引用”选择“添加引用”,浏览并选中该DLL文件。
  2. NuGet包管理:在解决方案资源管理器中右键项目点击“管理NuGet包”,搜索 Free Spire.XLS 并安装。或者在程序包管理控制台中执行:
Install-Package FreeSpire.XLS -Version 12.2.0

获取图片所在行、列位置的逻辑步骤

确定图片在Excel中的坐标位置,核心在于理解Excel的坐标系统:横坐标对应图片左上角所在的列索引(LeftColumn),纵坐标对应其所在的行索引(TopRow)。以下是具体操作流程:

第2步:加载Excel工作簿与工作表

创建 Workbook 实例,调用 LoadFromFile 方法加载目标Excel文件。随后通过 Worksheets[int] 属性指定要操作的工作表。注意索引通常从0开始,例如 Worksheets[1] 表示第二个工作表。

第3步:获取特定图片对象

在指定的工作表中,通过 Pictures[int] 集合获取单个图片对象。例如,Pictures[0] 代表该工作表中的第一张图片。若需遍历所有图片,可迭代 Pictures 集合。

第4步:提取并输出坐标信息

对于获取到的 ExcelPicture 对象,直接访问其 TopRow 和 LeftColumn 属性即可获得行号和列号。将这些值转换为字符串并通过控制台或日志输出,即可完成坐标的定位。

完整代码实现

C# 实现示例

using Spire.Xls;

namespace GetImgLocation
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 初始化 Workbook 并加载测试Excel文档
            Workbook wb = new Workbook();
            wb.LoadFromFile("test.xlsx");

            // 2. 获取指定工作表(此处以第2个表格为例,索引为1)
            Worksheet sheet = wb.Worksheets[1];

            // 3. 获取工作表中的第一张图片对象
            ExcelPicture picture = sheet.Pictures[0];

            // 4. 读取图片左上角所在的行和列
            string row = picture.TopRow.ToString();
            string column = picture.LeftColumn.ToString();

            // 5. 输出结果格式:location:(行号,列号)
            System.Console.Write("location:(" + row + "," + column + ")");
            System.Console.ReadLine();
        }
    }
}

VB.NET 实现示例

Imports Spire.Xls

Namespace GetImgLocation
    Class Program
        Private Shared Sub Main(args As String())
            ' 1. 初始化 Workbook 并加载测试Excel文档
            Dim wb As New Workbook()
            wb.LoadFromFile("test.xlsx")

            ' 2. 获取指定工作表(此处以第2个表格为例,索引为1)
            Dim sheet As Worksheet = wb.Worksheets(1)

            ' 3. 获取工作表中的第一张图片对象
            Dim picture As ExcelPicture = sheet.Pictures(0)

            ' 4. 读取图片左上角所在的行和列
            Dim row As String = picture.TopRow.ToString()
            Dim column As picture.LeftColumn.ToString()

            ' 5. 输出结果
            System.Console.Write((Convert.ToString((Convert.ToString("location:(") & row) + ",") & column) + ")")
            System.Console.ReadLine()
        End Sub
    End Class
End Namespace

运行结果验证

执行上述代码后,程序将读取Excel中指定位置的图片坐标。假设测试文件 test.xlsx 的第二个工作表中,第一张图片的左上角位于第8行第4列,控制台输出结果如下:

通过这种方式,你可以灵活地解析Excel内部元素的位置信息,便于后续的数据处理或报表自动生成。以上就是C#实现获取Excel中图片所在坐标位置的详细内容,更多关于Excel图片处理及Spire.XLS使用的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表