NPOI图像调整大小

时间:2018-01-10 08:01:23

标签: c# excel npoi

我正在尝试使用NPOI更改Excel工作表中插入图像的大小。以下是代码示例:

IWorkbook workbook;
if (useOldExcelFormat)
    workbook = new HSSFWorkbook();
else
    workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("My sheet");
IDrawing patriarch = sheet.CreateDrawingPatriarch();
int picId = workbook.AddPicture(imageBytes, PictureType.JPEG);
IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, columnIndex, rowIndex, columnIndex + 1, rowIndex + 1);
IPicture picture = patriarch.CreatePicture(anchor, picId);
picture.Resize(0.5);

但是此代码无法正常运行。插入图像,但比例错误:图像垂直和/或水平显着拉伸,并且根据我正在创建的工作簿类型(HSSF或XSSF),图像的缩放比例也不同。

我发现Resizes方法只能使用默认字体(Calibri 11 for XSSF)才能正常工作。但即使使用默认字体调整大小仍然有效。

有没有办法用NPOI正确调整图像大小?

1 个答案:

答案 0 :(得分:0)

我发现了这个:AddDimensionalImage。它显示了如何将图像插入具有特定尺寸的图纸的完整示例。帮助了我很多。当行包含具有自动装配文本的单元格时,NPOI可能无法正常工作,因此最好先计算实际行高。