C#实现获取Excel中图片所在坐标位置
作者:E-iceblue 发布时间:2021-10-14 23:36:18
本文以C#和vb.net代码示例展示如何来获取Excel工作表中图片的坐标位置。这里的坐标位置是指图片左上角顶点所在的单元格行和列位置,横坐标即顶点所在的第几列、纵坐标即顶点所在的第几行。下面是获取图片位置的详细方法及步骤。
程序环境
按照如下方法来引用Spire.Xls.dll 版本:12.2
方法1
将 Free Spire.XLS for .NET 包下载到本地,解压,安装到指定路径。完成安装后,在安装路径下找到BIN文件夹下的Spire.Xls.dll文件;然后在Visual Studio 中打开“解决方案资源管理器”,点击“引用”,“添加引用”,将安装路径下的dll文件引入VS程序。
方法2
通过 NuGet 安装。在Visual Studio 中打开“解决方案资源管理器”,点击“管理NuGet包”,搜索“Free Spire.XLS”,点击安装。
或者通过PM控制台安装:Install-Package FreeSpire.XLS -Version 12.2.0
获取图片所在行、列位置
下面是详细步骤:
创建Workbook类的对象。
调用Workbook.LoadFromFile(string fileName)方法加载Excel文件。
通过Workbook.Worksheets[int]属性获取指定工作表。
通过Worksheet.Pictures[int]获取指定图片。
通过ExcelPicture.TopRow属性和ExcelPicture.LeftColumn属性获取图片所在行、列位置。
最后,通过System.Console.Write()及System.Console.ReadLine()方法输出获取的结果。
实现代码
以下是完成代码,供参考:
C#
using Spire.Xls;
namespace GetImgLocation
{
class Program
{
static void Main(string[] args)
{
//加载测试文档
Workbook wb = new Workbook();
wb.LoadFromFile("test.xlsx");
//获取第2个工作表
Worksheet sheet = wb.Worksheets[1];
//获取工作表中的第一张图片
ExcelPicture picture = sheet.Pictures[0];
//获取图片所在行、列位置
string row = picture.TopRow.ToString();
string column = picture.LeftColumn.ToString();
//输出获取结果
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())
'加载测试文档
Dim wb As New Workbook()
wb.LoadFromFile("test.xlsx")
'获取第2个工作表
Dim sheet As Worksheet = wb.Worksheets(1)
'获取工作表中的第一张图片
Dim picture As ExcelPicture = sheet.Pictures(0)
'获取图片所在行、列位置
Dim row As String = picture.TopRow.ToString()
Dim column As String = picture.LeftColumn.ToString()
'输出获取结果
System.Console.Write((Convert.ToString((Convert.ToString("location:(") & row) + ",") & column) + ")")
System.Console.ReadLine()
End Sub
End Class
End Namespace
读取结果如图,图片所在位置为第八行、第四列:
来源:https://www.cnblogs.com/Yesi/p/16184897.html


猜你喜欢
- 前言最近我跟自定义View杠上了,甚至说有点上瘾到走火入魔了。身为菜鸟的我自然要查阅大量的资料,学习大神们的代码,这不,前两天正好在郭神在微
- SpringBoot2.x过后static下的静态资源无法访问package com.example.thymeleaf.commons;i
- 我们就可以结合今天的Annotation Processing Tool(APT)来自定义注解处理器。注解处理器简单解释就是收集我们标记的注
- 使用这个插件时要注意版本的问题,不同的版本可能 PageHelper 不会生效springboot 导入的 pagehelper 包<
- 这种属性应用方式是field_name=@field_value@。两个@符号是springboot为替代${}属性占位符产生,原因是${}
- 今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- #region 提示信息#endregion作用:折叠并隐藏代码 ,别且折叠以后能够显示白字“提示信息”如下图就是使用了#region和#e
- 先看下利用wheelview实现滚动随机选择号码效果:直接上代码 首页就是dialog显示不在描述 主要看dialog代码package c
- 前言最近参加了21天打卡活动,希望可以让自己养成写博客的习惯…ArrayList和LinkedListArrayLis
- FeignClient接口调用无参字符串参数对象参数拟定客户端调用服务端接口,直接放代码啦,参考格式即可。1、无参服务端方法:
- 用Android studio做一个简易计算器,供大家参考,具体内容如下长话短说,先建立一个Android项目;创建完成后打开activit
- 1. 前言我们往往有些配置文件,当项目大的时候,一些配置文件或者一些判断逻辑就会变得复杂,会出现很多判断语句,我在想,能不能通过前缀拼接动态
- Fragment的主要意义就是提供与Activity绑定的生命周期回调。Fragment不一定要向Activity的视图层级中添加View.
- 什么是接口:接口是一系列方法的声明,是一些方法特征的集合注意:在接口中只有方法名,没有方法体!关键字:interface(创建接口), im
- 上一篇讲解了类型,通过类型来开始本篇的学习;int a[10];上述代码中的a是什么类型呢?相信很多人都知道是一个数组类型,具体来说是一个i
- Android 注解Annotation相关文章:Android AOP注解Annotation详解(一)Android AOP之注解处理解
- Java中的static关键字可以用于修饰变量、方法、代码块和类,还可以与import关键字联合使用,使用的方式不同赋予了static关键字
- 本文通俗易懂的分析了C#中值类型和引用类型的区别。分享给大家供大家参考。具体分析如下:似乎“值类型和引用类型的区别”是今年面试的流行趋势,我
- 本文实例讲述了Android自动朗读TTS用法。分享给大家供大家参考,具体如下:TextToSpeech简称 TTS,是自Android 1