使用 C# 在特定单元格的 Excel 中添加图片

Add Picture in Excel on Particular Cell with C#

我正在尝试将图像添加到第 3 行第 1 列的 Excel 单元格中,如下所述。编译器给了我一个错误。 我在这里做错了什么吗?预先感谢您的建议。

Excel.Application xlApp; 
Excel.Workbook wb; 
Excel.Worksheet ws; 
object misValue = System.Reflection.Missing.Value; 
xlApp = new Excel.Application(); 
wb = xlApp.Workbooks.Add(misValue); 
ws = (Excel.Worksheet)wb.Worksheets.get_Item(1); 
ws.Cells[3, 1] = ws.Shapes.AddPicture("C:\photos\4a.png", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 75, 75, 350, 50);

你必须像下面这样添加图片

Microsoft.Office.Interop.Excel.Range oRange = (Microsoft.Office.Interop.Excel.Range)ws.Cells[3, 1];
float Left = (float)((double)oRange.Left);
float Top = (float)((double)oRange.Top);
const float ImageSize = 32;
ws.Shapes.AddPicture("C:\pic.JPG", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, Left, Top, ImageSize, ImageSize);

Aspose.Cells API 可用于在 Excel 中使用 C# 或其他编程语言在特定单元格上添加图片,例如Java、C++等

为了演示,请参阅以下 C# 代码 和显示输入 Excel 文件和输出的 Snapshot Excel 文件由 Aspose.Cells API 代码执行后生成。 如您在快照中所见,单元格 C12 包含图片。

另请阅读代码中的注释以获得更多帮助。

C#

// Load input Excel file inside Aspose.Cells Workbook object.
Workbook wb = new Workbook("SampleAddPictureInExcelCell.xlsx");

// Access first worksheet.
Worksheet ws = wb.Worksheets[0];

// Access cell C12 by name.
Cell cell = ws.Cells["C12"];

// Add picture in Excel cell.
int idx = ws.Pictures.Add(cell.Row, cell.Column, "D:/Download/Penguins.jpg");

// Access the picture by index.
Picture pic = ws.Pictures[idx];

// Get the column width and row height of the cell in inches.
double w = ws.Cells.GetColumnWidthInch(cell.Column);
double h = ws.Cells.GetRowHeightInch(cell.Row);

// Adjust the picture width and height as per cell width and height.
pic.WidthInch = w;
pic.HeightInch = h;

// Save the workbook in output Excel file.
wb.Save("OutputAddPictureInExcelCell.xlsx", SaveFormat.Xlsx);

显示输入 Excel 文件和由 Aspose.Cells API 生成的输出 Excel 文件的快照。此处单元格 C12 包含图片。