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

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

在处理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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。