c# – 使用NPOI将图像插入Excel文件
发布时间:2020-12-15 22:04:39 所属栏目:百科 来源:网络整理
导读:我正在使用C#在Visual Studio 2010中编写程序,而我正在使用NPOI库. 我正在尝试将图像插入excel文件.我尝试了两种不同的方法,但它们都不起作用. //Method 1HSSFPatriarch patriarch = newSheet.CreateDrawingPatriarch() as HSSFPatriarch;HSSFClientAnchor a
我正在使用C#在Visual Studio 2010中编写程序,而我正在使用NPOI库.
我正在尝试将图像插入excel文件.我尝试了两种不同的方法,但它们都不起作用. //Method 1 HSSFPatriarch patriarch = newSheet.CreateDrawingPatriarch() as HSSFPatriarch; HSSFClientAnchor anchor; var memoryStream = new MemoryStream(); System.Drawing.Image image = System.Drawing.Image.FromFile("image.jpeg"); image.Save(memoryStream,System.Drawing.Imaging.ImageFormat.Gif); anchor = new HSSFClientAnchor(0,255,0); anchor.AnchorType = 2; //types are 0,2,and 3. 0 resizes within the cell,2 doesn't int index = newWorkbook.AddPicture(memoryStream.ToArray(),PictureType.JPEG); HSSFPicture signaturePicture = patriarch.CreatePicture(anchor,index) as HSSFPicture; //ERROR 使用方法1,当我尝试编译时捕获异常.错误消息wasObject引用未设置为对象的实例,并且错误发生在代码的最后一行. //Method 2 byte[] data = File.ReadAllBytes("image.jpeg"); int picInd = newWorkbook.AddPicture(data,XSSFWorkbook.PICTURE_TYPE_JPEG); XSSFCreationHelper helper = newWorkbook.GetCreationHelper() as XSSFCreationHelper; XSSFDrawing drawing = newSheet.CreateDrawingPatriarch() as XSSFDrawing; XSSFClientAnchor anchor = helper.CreateClientAnchor() as XSSFClientAnchor; anchor.Col1 = 0; anchor.Row1 = 0; XSSFPicture pict = drawing.CreatePicture(anchor,picInd) as XSSFPicture; 方法2编译并运行没有问题.但是当我尝试打开创建的excel文件时,我收到一条消息,说Excel在’output.xlsx’中找到了不可读的内容.你想恢复这个工作簿的内容吗?我恢复了工作簿,仍然没有显示图像. 插入图像后的下一步是在同一工作簿中克隆工作表.使用方法2,根本没有创建克隆表,我不确定一旦图像问题得到修复,这是否会得到修复. 有人可以帮我这个吗?我想知道如何使方法正常工作,或者是否有另一种方法将图像插入excel文件. 另外,作为一个注释,我正在使用XSSFWorkbook,XSSFSheet等(不是HSSF),我的输出文件是.xlsx 任何帮助/建议表示赞赏,谢谢! 解决方法
你的方法-2很好.但是你需要添加pict.Resize();在最后一行.
byte[] data = File.ReadAllBytes("image.jpeg"); int picInd = newWorkbook.AddPicture(data,picInd) as XSSFPicture; pict.Resize(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |