Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OpenXml SpreadsheetDocument.Open(…)获取异常-缺少主要部分_C#_.net_Excel_Xls_Openxml Sdk - Fatal编程技术网

C# OpenXml SpreadsheetDocument.Open(…)获取异常-缺少主要部分

C# OpenXml SpreadsheetDocument.Open(…)获取异常-缺少主要部分,c#,.net,excel,xls,openxml-sdk,C#,.net,Excel,Xls,Openxml Sdk,我有一个带有标题的xlsx文档,它位于我的项目路径中。 我想使用OpenXML插入数据,但打开文件时出现异常: using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(MyxlsFileName, true)) { // ... } 例外情况: “指定的包无效。缺少主要部分” 例外的含义是什么?什么是错误的 提前感谢 不能使用OpenXml打开XLS文件。必须使用Microsoft Excel 2007或更新版本将Exce

我有一个带有标题的xlsx文档,它位于我的项目路径中。 我想使用OpenXML插入数据,但打开文件时出现异常:

using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(MyxlsFileName, true))
{
    // ...
}
例外情况:

“指定的包无效。缺少主要部分”

例外的含义是什么?什么是错误的


提前感谢

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

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

所以你有两个选择:

  • 在处理XLS文件之前,请手动将其转换为XLSX
  • 查找用于处理XLS文件的库或API

  • 虽然这可能是非常明显的,但它发生在我身上:另一种可能触发EXACT相同错误的情况是当您获得错误的文件名时。
    因此,请检查您的路径是否正确,对于我来说,我得到了一个新创建的文件(拼写错误),但仍然出现了相同的错误。

    尝试使用SpreadsheetDocument.Create


    我尝试使用xlsx文件而不是“打开”

    时遇到了相同的异常。请确保使用正确的文件类型保存文件。您必须使用Excel 2007或2010,并且在“保存”对话框中显示:“另存为类型:”选择“Excel工作簿”而不是“Excel 97-2003工作簿”。这正是我所做的。请确保在尝试读取该文件时,该文件未在Excel中打开,还可以看到以下问题:该文件在运行时处于关闭状态。上面的链接是关于xml文件的,我使用的是我自己创建的xlsx文件。