如何使用 OpenXML SDK 在 Excel 中附加 .eml 文件?
How to attach .eml file in Excel using OpenXML SDK?
我正在使用此代码。它确实附加了文件,但如果我使用 MS Excel 应用程序打开文件,我什么也看不到。
string targetFile = "test returns tracker.xlsx";
string placeholder = @"placeholder.PNG";
string embed = @"embed.docx";
using (SpreadsheetDocument document = SpreadsheetDocument.Open(targetFile, true))
{
WorkbookPart workbookpart = document.WorkbookPart;
WorksheetPart sheet1 = workbookpart.WorksheetParts.First();
EmbeddedPackagePart newEmbeddedPackagePart = sheet1.AddNewPart<EmbeddedPackagePart>(@"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "rId100");
newEmbeddedPackagePart.FeedData(File.Open(embed, FileMode.Open));
document.WorkbookPart.Workbook.Save();
// Close the document handle.
document.Close();
}
newEmbeddedPackagePart.FeedData(File.Open(embed...
您的代码中的问题与 FeedData 有关。 File.Open 方法为您提供了一个流,但它是空的。您需要先查找数据,然后才能期望保存在 excel 中作为嵌入式文档
搜索的例子是
FileStream SourceStream = File.Open(filename, FileMode.Open);
SourceStream.Seek(0, SeekOrigin.End);
在您的 FeedData 中使用此源流使其工作。
newEmbeddedPackagePart.FeedData(SourceStream);
现在您可以保存工作簿并关闭文档
参考文献:
我正在使用此代码。它确实附加了文件,但如果我使用 MS Excel 应用程序打开文件,我什么也看不到。
string targetFile = "test returns tracker.xlsx";
string placeholder = @"placeholder.PNG";
string embed = @"embed.docx";
using (SpreadsheetDocument document = SpreadsheetDocument.Open(targetFile, true))
{
WorkbookPart workbookpart = document.WorkbookPart;
WorksheetPart sheet1 = workbookpart.WorksheetParts.First();
EmbeddedPackagePart newEmbeddedPackagePart = sheet1.AddNewPart<EmbeddedPackagePart>(@"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "rId100");
newEmbeddedPackagePart.FeedData(File.Open(embed, FileMode.Open));
document.WorkbookPart.Workbook.Save();
// Close the document handle.
document.Close();
}
newEmbeddedPackagePart.FeedData(File.Open(embed...
您的代码中的问题与 FeedData 有关。 File.Open 方法为您提供了一个流,但它是空的。您需要先查找数据,然后才能期望保存在 excel 中作为嵌入式文档
搜索的例子是
FileStream SourceStream = File.Open(filename, FileMode.Open);
SourceStream.Seek(0, SeekOrigin.End);
在您的 FeedData 中使用此源流使其工作。
newEmbeddedPackagePart.FeedData(SourceStream);
现在您可以保存工作簿并关闭文档
参考文献: