首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EPPlus:结合形状和编程图片的bug

EPPlus:结合形状和编程图片的bug
EN

Stack Overflow用户
提问于 2019-01-07 19:02:25
回答 1查看 61关注 0票数 1

问题:

当我编程打开一个Excel文件,其中有形状(例如。(箭头),然后通过向文件添加一个新图像(通过编程)来修改该文件,如果我试图获取这个新修改的Excel文件的字节(GetAsByteArray),它就会崩溃。

复制bug的步骤:

  1. 创建一个Excel文件(xlsx)并在其中添加一个形状(例如。箭)
  2. 使用此代码打开该文件并添加编程图片。 string path = Server.MapPath("~/Content/input.xlsx");使用(Stream stream = System.IO.File.Open(path,FileMode.Open,FileAccess.Read,FileShare.ReadWrite)) { //读取文件ExcelPackage excelPackage =新的ExcelPackage(流);// Get工作表ExcelWorksheet工作表=FileShare.ReadWrite//添加编程图片worksheet.Drawings .AddPicture(“徽标”,新的worksheet.Drawings .SetPosition(5,0,5,0);byte[] output = File(excelPackage.GetAsByteArray(),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","output.xlsx");}

有什么想法或解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 14:23:36

试试这段代码。它将在添加图像后给出字节。但是Excel文件不会发生其他任何事情。

代码语言:javascript
运行
复制
//create a fileinfo object of an excel file on the disk
FileInfo file = new FileInfo(Server.MapPath(""~/Content/input.xlsx"));

//create a new Excel package from the file
using (ExcelPackage package = new ExcelPackage(file))
{
    //create an instance of the the first sheet in the loaded file
    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];

    //Add programmatic picture
    worksheet.Drawings
        .AddPicture("logo", new FileInfo(Server.MapPath("~/Content/logo.png")))
        .SetPosition(5, 0, 5, 0);

    //get the new size in byte array
    byte[] output = package.GetAsByteArray();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54080274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档