在我通过openxml将excel嵌入到powerpoint文件后,Powerpoint显示“无法读取对象”。 我使用了一个简单的Excel图表和已经创建的pptx。 这在.NetCore和.NetFramework中都失败了 这是我的代码。
string PPTFileName = @"c:\tmp\Example04.pptx";
string spreadsheetFileName = @"c:\tmp\demoOut5.xlsx";
using (PresentationDocument myPresDoc = PresentationDocument.Open(PPTFileName, true))
{
SlidePart slidePartBookMark = null;
string chartPartIdBookMark = "";
foreach (var slidePart in myPresDoc.PresentationPart.SlideParts)
{
if (slidePart.ChartParts.Any())
{
slidePartBookMark = slidePart;
var chartPart = slidePart.ChartParts.First();
chartPartIdBookMark = slidePart.GetIdOfPart(chartPart);
slidePart.DeletePart(chartPart);
slidePart.Slide.Save();
break;
}
}
var newChartPart = slidePartBookMark.AddNewPart<ChartPart>(chartPartIdBookMark);
EmbeddedPackagePart embPackage = newChartPart
.AddNewPart<EmbeddedPackagePart>("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "rId1");
embPackage.FeedData(new FileStream(@"c:\tmp\demoOut4.xlsx", FileMode.Open, FileAccess.Read));
DocumentFormat.OpenXml.Drawing.Charts.ExternalData ed = new DocumentFormat.OpenXml.Drawing.Charts.ExternalData();
ed.Id = "rId1";
slidePartBookMark.Slide.Save();
myPresDoc.Close();
Console.WriteLine("Done");
Console.ReadKey();
}
任何帮助或指示都将不胜感激。感谢。