NPOI 图像调整大小
NPOI image resizing
我正在尝试使用 NPOI 更改 Excel sheet 中插入的图像的大小。这是一个代码示例:
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);
但是这段代码不能正常工作。图像已插入,但比例错误:图像在垂直方向上明显拉伸 and/or 并且图像的缩放比例也不同,具体取决于我正在创建的工作簿类型(HSSF 或 XSSF)。
我发现调整大小方法仅适用于默认字体(XSSF 的 Calibri 11)的信息。但即使使用默认字体大小调整仍然会出错。
是否有任何方法可以使用 NPOI 正确调整图像大小?
我找到了这个:AddDimensionalImage。它显示了如何将图像插入具有特定尺寸的 sheet 的完整示例。帮了我大忙。当行中包含带有自动换行文本的单元格时,NPOI 可能无法正常工作,因此最好先计算实际行高。
我正在尝试使用 NPOI 更改 Excel sheet 中插入的图像的大小。这是一个代码示例:
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);
但是这段代码不能正常工作。图像已插入,但比例错误:图像在垂直方向上明显拉伸 and/or 并且图像的缩放比例也不同,具体取决于我正在创建的工作簿类型(HSSF 或 XSSF)。
我发现调整大小方法仅适用于默认字体(XSSF 的 Calibri 11)的信息。但即使使用默认字体大小调整仍然会出错。
是否有任何方法可以使用 NPOI 正确调整图像大小?
我找到了这个:AddDimensionalImage。它显示了如何将图像插入具有特定尺寸的 sheet 的完整示例。帮了我大忙。当行中包含带有自动换行文本的单元格时,NPOI 可能无法正常工作,因此最好先计算实际行高。