首页 新闻 会员 周边 捐助

excel加入图片

0
悬赏园豆:100 [已解决问题] 解决于 2023-07-12 13:08


为什么明明设置了高度,可是Excel里的图片还是原始大小

问题补充:

我一开始以为是这句命令有问题,但是我把这句命令单独移植出来,插入excel到图片可以缩小比例。
这句命令在整个文本环境里,对图片的缩放不能成功。这是·怎么回事?

等月亮爬上坡的主页 等月亮爬上坡 | 初学一级 | 园豆:12
提问于:2023-07-07 14:39
< >
分享
最佳答案
0

在将图片插入到 Excel 中时,设置图片的高度属性并不会直接影响其在 Excel 中的显示大小。默认情况下,Excel 会按照图片的原始大小进行显示。

要调整插入的图片在 Excel 中的大小,您可以使用以下方法:

使用 Picture 对象的 ShapeRange 属性来调整图片大小。以下是一个示例:
csharp
Copy code
using Excel = Microsoft.Office.Interop.Excel;

// 创建 Excel 应用程序对象
Excel.Application excelApp = new Excel.Application();

// 打开工作簿
Excel.Workbook workbook = excelApp.Workbooks.Open("YourWorkbook.xlsx");

// 获取工作表
Excel.Worksheet worksheet = workbook.ActiveSheet;

// 插入图片
Excel.Range pictureRange = worksheet.Range["A1"]; // 设置图片插入的位置
Excel.Pictures pictures = worksheet.Pictures;
Excel.Picture picture = pictures.Insert("image.jpg");
picture.ShapeRange.LockAspectRatio = Microsoft.Office.Core.MsoTriState.msoFalse; // 允许调整宽高比
picture.ShapeRange.Width = pictureRange.Width; // 设置图片宽度与目标区域一致
picture.ShapeRange.Height = pictureRange.Height; // 设置图片高度与目标区域一致

// 保存并关闭工作簿
workbook.Save();
workbook.Close();

// 退出 Excel 应用程序
excelApp.Quit();
在上述示例中,通过 Width 和 Height 属性将图片的大小调整为与目标区域相同。

使用 Shape 对象的 Width 和 Height 属性来调整图片大小。以下是一个示例:
csharp
Copy code
using Excel = Microsoft.Office.Interop.Excel;

// 创建 Excel 应用程序对象
Excel.Application excelApp = new Excel.Application();

// 打开工作簿
Excel.Workbook workbook = excelApp.Workbooks.Open("YourWorkbook.xlsx");

// 获取工作表
Excel.Worksheet worksheet = workbook.ActiveSheet;

// 插入图片
Excel.Range pictureRange = worksheet.Range["A1"]; // 设置图片插入的位置
Excel.Shape shape = worksheet.Shapes.AddPicture("image.jpg", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, pictureRange.Left, pictureRange.Top, pictureRange.Width, pictureRange.Height);

// 保存并关闭工作簿
workbook.Save();
workbook.Close();

// 退出 Excel 应用程序
excelApp.Quit();
在上述示例中,通过直接使用 Width 和 Height 属性来调整图片的大小。

请注意,上述示例中使用的是 Microsoft Office Interop Excel 库。确保您已经正确地引用了该库,并根据您的需求进行适当的调整。另外,确保您已经在插入图片之前设置好了目标区域的大小。

如果您仍然遇到问题,请提供更多的上下文和错误信息,以便我能够提供更准确的帮助。

收获园豆:100
Technologyforgood | 大侠五级 |园豆:7535 | 2023-07-07 22:25

我这边是Python写的,用的是xlwings库。我尝试移植的时候,很多语句说未定义

等月亮爬上坡 | 园豆:12 (初学一级) | 2023-07-10 14:03

AttributeError: 'Sheet' object has no attribute 'Pictures'
然后我这边运行的时候报错

等月亮爬上坡 | 园豆:12 (初学一级) | 2023-07-10 14:17

谢谢大哥,我找到了。主要是少了这行参数 scale=None

等月亮爬上坡 | 园豆:12 (初学一级) | 2023-07-12 13:08
其他回答(2)
0

Python可以试试Spire.XLS for Python,不过会有个warning sheet
首先通过pip命令安装:

pip install Spire.XLS-for-Python
pip install plum-dispatch==1.7.4

然后参考下面代码,添加图片并设置大小和位置

from spire.xls import *
from spire.common import *

#创建Workbook对象
workbook = Workbook()
#加载工作簿
workbook.LoadFromFile("Input.xlsx")
#获取第一个工作表
sheet = workbook.Worksheets[0]
#添加图片
picture = sheet.Pictures.Add(1, 1, "image.png")
#设置图片宽度和高度
picture.Width = 200
picture.Height = 200
#设置图片位置
picture.Left = 200
picture.Top = 100
#保存
workbook.SaveToFile("ResetSizeAndPositionForImage.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
ms_doudou | 园豆:1170 (小虾三级) | 2023-07-11 13:53

大哥,我这边装不了其他库。只能用xlwings库。不然我也不至于难这么多天了。你看看你还有什么办法吗?

支持(0) 反对(0) 等月亮爬上坡 | 园豆:12 (初学一级) | 2023-07-12 11:23
0

scale=None,找了好久总于找到。加入这样命令参数,就可以解决我的问题了

等月亮爬上坡 | 园豆:12 (初学一级) | 2023-07-12 13:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册