【发布时间】:2021-03-02 10:12:42
【问题描述】:
OpenXmlSDK create xlsx ClosedXml 无法读取,但NPOI,Epplus 可以读取,并显示消息The specified package is invalid. The main part is missing.
ClosedXml 代码:
void Main()
{
var path = @"C:\Users\Wei\AppData\Local\Temp\099e17f7-a98b-42d5-8b75-4e6775914f9c.xlsx";
using (var workbook = new XLWorkbook(path))
{
var worksheet = workbook.Worksheets.First();
var cells = worksheet.Cells();
}
}
消息:指定的包无效。主要部分不见了。
来源:DocumentFormat.OpenXml
堆栈跟踪:
at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.Load()
at DocumentFormat.OpenXml.Packaging.OpenXmlPackage.OpenCore(String path, Boolean readWriteMode)
at DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(String path, Boolean isEditable, OpenSettings openSettings)
at DocumentFormat.OpenXml.Packaging.SpreadsheetDocument.Open(String path, Boolean isEditable)
at ClosedXML.Excel.XLWorkbook.LoadSheets(String fileName) in C:\projects\closedxml\ClosedXML\Excel\XLWorkbook_Load.cs:line 42
at ClosedXML.Excel.XLWorkbook.Load(String file) in C:\projects\closedxml\ClosedXML\Excel\XLWorkbook_Load.cs:line 33
at ClosedXML.Excel.XLWorkbook..ctor(String file, XLEventTracking eventTracking) in C:\projects\closedxml\ClosedXML\Excel\XLWorkbook.cs:line 718
at ClosedXML.Excel.XLWorkbook..ctor(String file) in C:\projects\closedxml\ClosedXML\Excel\XLWorkbook.cs:line 709
at UserQuery.Main() in C:\Users\Wei\AppData\Local\Temp\LINQPad6\_zeygkceo\zmngrx\LINQPadQuery:line 5
at LINQPad.ExecutionModel.ClrQueryRunner.Run()
at LINQPad.ExecutionModel.Server.RunQuery(QueryRunner runner)
我已经尝试解压缩 xlsx 文件,如下所示:
文件夹树和链接:https://github.com/shps951023/MyFiles/tree/master/2021-03-02/099e17f7-a98b-42d5-8b75-4e6775914f9c
│ [Content_Types].xml
│
├─xl
│ │ sharedStrings.xml
│ │ styles.xml
│ │ workbook.xml
│ │
│ ├─worksheets
│ │ sheet1.xml
│ │
│ └─_rels
│ workbook.xml.rels
│
└─_rels
.rels
【问题讨论】: