繁体   English   中英

工作表删除导致 OpenXML 中出现不可读文件错误

[英]A sheet removal causes an unreadable file error in OpenXML

我尝试从 Excel 文件中删除一张工作表,并且尝试了来自 Inte.net 的大量资源,但我总是得到相同的结果:不可读的内容。

最后一个链接: https://blogs.msdn.microsoft.com/vsod/2010/02/05/how-to-delete-a-worksheet-from-excel-using-open-xml-sdk-2 -0/

我也试过这个:

 Sheet sheet = workbook.WorkbookPart.Workbook.Descendants<Sheet>().First(s => s.Name.Equals(sheetName));
 sheet.Remove();
 workbook.WorkbookPart.Workbook.Save();

加上这个:

sheet.RemoveAllChildren()

但是文件总是损坏的。

请!

更新

 using (MemoryStream xlsxStream = new MemoryStream())
 {
    using (var fileStream = File.OpenRead(templatePath))
       fileStream.CopyTo(xlsxStream);
    ...
    using (var workbook = SpreadsheetDocument.Open(xlsxStream, true, new OpenSettings { AutoSave = true }))
    {
       Sheet sheet = workbook.WorkbookPart.Workbook.Descendants<Sheet>().First(s => s.Name.Equals(sheetName));
       sheet.Remove();
       workbook.WorkbookPart.Workbook.Save();
       ...

您的答案的潜在解决方案可能是一个空的(不需要的) CalculationChainPart 有关详细信息,请参阅此答案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM