问题描述
我在 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 (将#修改为@)