使用 NPOI C# 将图像添加到 Excel (.xlsx)

Sob*_*han 3 c# excel npoi

我想使用 NPOI 将图像插入到 XLSX 文件(不是 xls)中。我正在使用XSSFWorkbookXSSFSheet

byte[] data = File.ReadAllBytes("SomeImage.jpg");
int picInd = workbook.AddPicture(data, XSSFWorkbook.PICTURE_TYPE_JPEG);
XSSFCreationHelper helper = workbook.GetCreationHelper() as XSSFCreationHelper;
XSSFDrawing drawing = _sheet.CreateDrawingPatriarch() as XSSFDrawing;
XSSFClientAnchor anchor = helper.CreateClientAnchor() as XSSFClientAnchor;
anchor.Col1 = 1;
anchor.Row1 = 1;
XSSFPicture pict = drawing.CreatePicture(anchor, picInd) as XSSFPicture;
Run Code Online (Sandbox Code Playgroud)

文件保存成功。但是当打开它显示以下错误并单击是时,它不显示图像。 在此处输入图片说明

Sob*_*han 9

我得到了解决方案:

byte[] data = File.ReadAllBytes("someImage.png");
int pictureIndex = workbook.AddPicture(data, PictureType.PNG);
ICreationHelper helper = workbook.GetCreationHelper();
IDrawing drawing = _sheet.CreateDrawingPatriarch();
IClientAnchor anchor = helper.CreateClientAnchor();
anchor.Col1 = 0;//0 index based column
anchor.Row1 = 0;//0 index based row
IPicture picture = drawing.CreatePicture(anchor, pictureIndex);
picture.Resize();
Run Code Online (Sandbox Code Playgroud)

  • 优秀。你节省了我几个小时。只是在列大小更改时不调整图像大小的改进:`anchor.AnchorType = AnchorType.MoveDontResize;` (2认同)