如何插入图片到Excel单元格?
我的任务是把图片从URL到Excel工作表中的某个单元格。 我在C#中使用NetOffice来执行此操作。
我的主要问题是,我无法find一个方法来完全插入到单元格的图片。 当我使用Sheet.Shapes.AddPicture(),我必须计算坐标在哪里把我的照片。 当然,我没有问题(我创build了一种解决方法),但是,我想问我的方法来解决这个问题是正确的,或者如果有其他方法,我可以插入图像的单元格。
这是我的解决方法:
var floatLeft = FloatLeftPixelsCalculation(rowNumber); var floatTop = FloatTopPixelsCalculation(rowNumber); Worksheet.Shapes.AddPicture(urlCellValue, MsoTriState.msoFalse, MsoTriState.msoTrue, floatLeft, floatTop, PictureWidth, PictureHeight); public float FloatTopPixelsCalculation(int rowNumber) { float floatTop = 0; for (var rNumber = 1; rNumber < rowNumber; rNumber++) { var cellHeight = Convert.ToSingle(Worksheet.Cells[rNumber, ColumnIndex].RowHeight); floatTop = floatTop + cellHeight; } return floatTop; } public float FloatLeftPixelsCalculation(int rowNumber) { float floatLeft = 0; for (var columnNumber = 1; columnNumber < ColumnIndex; columnNumber++) { var cellWidth = Convert.ToSingle(Worksheet.Cells[rowNumber, columnNumber].ColumnWidth); floatLeft = floatLeft + cellWidth; } return floatLeft; }
虽然道格·格兰西(Doug Glancy)在陈述Excel不考虑图片在单元“内部”时是正确的,但是图片可以与特定的单元格相关联 ,并且如果放置正确,将直观地起作用。
例如,假设你有一个房屋清单。 AY有关于房子的各种信息,而Z栏有房子的照片。 如果图片与正确的单元格正确关联,则在对图片进行sorting,剪切,复制和粘贴范围时,图片的行为与您所期望的相同。
为了让Excel正确操作房屋,他们必须符合两个标准:
-
图片必须完全在单元格内。 使用上面的代码,您将首先放置图片,然后将单元格的行高和列宽调整为至less等于图片的高度和宽度。
-
shape.Placement属性必须设置为xlMove或xlMoveAndSize。 从MS文档中,placement属性可以是下列之一:
xlFreeFloating (3) Object is free floating. xlMove (2) Object is moved with the cells. xlMoveAndSize (1) Object is moved and sized with the cells.
xlFreeFloating (3) Object is free floating. xlMove (2) Object is moved with the cells. xlMoveAndSize (1) Object is moved and sized with the cells.
如果图片完全位于单元格内部,并且.Placement
设置为xlMove
或xlMoveAndSize
,则每当容器单元移动时,图片将随之移动。 如果.Placement
设置为xlMoveandSize
,那么只要单元格宽度或高度发生更改,图片就会展开或收缩。 这可能是有用的,因为它确保图片保持在单元格的边界内。 如果使用xlMoveandSize
,则可能还需要考虑设置ShapeRange.LockAspectRatio = msoTrue
以防止调整列宽或行高时图片变形。
所以是的,弗吉尼亚州,你可以在一个单元格中放置一张图片。 只要确保你仔细地放置它。
- 使用Windows系统上的默认应用程序打开Excel文件
- Microsoft ACE驱动程序在我的程序的其余部分更改了浮点精度
- .NET VSTO – Excelfunction区选项卡标签为空,但仅限于Excel的第一个实例
- SAP:SAPGUI分析GuiUserArea
- 不知道为什么我得到Excel文件的System.Data.OleDb.OleDbException
- 在互操作Excel中的单元格上写图像?
- 从date范围中剥离EPPlus输出中的数据
- Microsoft.Office.Interop.Excel具有“坏值”作为默认参数
- 无法findassemblyentity frameworkv 4.4.0.0