C#使用 NPOI 添加图片到 Excel 单元格
入参:工作簿对象,某个单元格对象,将要写入的图片字节数组
对象解释:
XSSFClientAnchor:可设置图片放置的开始、结束单元格,X、Y 起始点位(这里挖个坑,具体设置多少可以根据行高等进行计算,具体可参考 pic.Resize() 的实现 )
1 /// <summary> 2 /// 将图片添加到工作簿 3 /// </summary> 4 /// <param name="workbook"></param> 5 /// <param name="cell"></param> 6 /// <param name="bytes"></param> 7 void SetCellPhoto(IWorkbook workbook, NPOI.SS.UserModel.ICell cell, byte[] bytes) 8 { 9 int pictureIdx = workbook.AddPicture(bytes, NPOI.SS.UserModel.PictureType.PNG); 10 11 // 创建绘图对象 12 var drawing = workbook.GetSheetAt(0).CreateDrawingPatriarch(); 13 14 XSSFClientAnchor anchor = new XSSFClientAnchor( 15 0, 50000, 0, 0, // 从单元格左上角开始 16 cell.ColumnIndex + 2, 17 cell.RowIndex, 18 cell.ColumnIndex + 5, 19 cell.RowIndex + 1 20 ); 21 anchor.AnchorType = (AnchorType)2; // 绝对定位 22 23 // 创建图片对象 24 XSSFPicture pic = (XSSFPicture)drawing.CreatePicture(anchor, pictureIdx); 25 26 // 设置图片的缩放大小 27 pic.Resize(1, 0.9); 28 }
本文来自博客园,作者:Pengxx,转载请注明原文链接:https://www.cnblogs.com/pengxx/p/18256224
“先从0到1,再从1到100”