微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 C# openXml 在 Excel 文件中插入图像

如何解决使用 C# openXml 在 Excel 文件中插入图像

我在 C# 中创建了一个函数来处理 azure 函数,但一开始我收到了这条消息:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} Failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

在互联网上看,它说这是因为 Azure Function 不能与 Excel Interop dll 一起使用,而实现这一点的方法是使用 OpenXml SDK,所以去创建了一个 OpenXml 方法

public static void AddImage(string filepath,string imagepath)
{
     using (SpreadsheetDocument spreadsheet = SpreadsheetDocument.Open(filepath,true))
     {
         WorkbookPart wb = spreadsheet.WorkbookPart;
         string sheetName = "sheet2";
         string relId = wb.Workbook.Descendants<Sheet>().First(s => sheetName.Equals(s.Name)).Id;
         WorksheetPart wp = (WorksheetPart) wb.GetPartById(relId);
         DrawingsPart drawingsPart1 = wp.AddNewPart<DrawingsPart>();
         ImagePart imagePart = drawingsPart1.AddImagePart(ImagePartType.Gif);

         using (FileStream stream = new FileStream(imagepath,FileMode.Open))
         {
            imagePart.FeedData(stream);
         }
         GenerateDrawingsPart1Content(drawingsPart1,drawingsPart1.GetIdOfPart(imagePart));


    Worksheet worksheet = wp.Worksheet;
    Drawing drawing1 = new Drawing() { Id = wp.GetIdOfPart(drawingsPart1) };
    worksheet.Append(drawing1);
    spreadsheet.Close();
}
}

一切顺利,直到他:

DrawingsPart drawingsPart1 = wp.AddNewPart<DrawingsPart>();

现在我不断收到此错误

"Only one instance of the type is allowed for this parent."

有什么修复错误的建议吗?除了在 Azure Functions 中使用 OpenXml 或 Excel Interop 之外,还有其他方法可以在函数中制作“在 excel 上插入图像”吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?