OpenXml SpreadsheetDocument.Open(…)获取exception – 主要部分丢失

我有一个xlsx文件标题,它位于我的项目path。 我想使用OpenXML插入数据,但打开文件时出现exception:

using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(MyxlsFileName, true)) { // ... } 

例外:

“指定的软件包无效,主要部分丢失”

exception的含义是什么,什么是错的?

预先感谢!

您不能用OpenXml打开XLS文件。 您必须将Excel文件保存为使用Microsoft Excel 2007或更新版本的XLSX文件。 (假设你在这里使用正确的文件扩展名…)

XLS扩展名的文件是专有的二进制格式,不能用OpenXML处理。

所以你有两个select:

  1. 在处理之前,将您的XLS文件手动转换为XLSX。
  2. find一个库或API来处理XLS文件。

虽然这可能是非常明显的,但它发生在我身上:另一种可能触发相同错误的情况是,当你得到错误的文件名。 所以检查你是否真的拥有了正确的path,对于我来说,我最终创build了一个新创build的文件(拼写错误),但仍然得到了相同的错误。

尝试使用SpreadsheetDocument.Create

而不是“打开”