Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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打开Excel工作表时,文件包含损坏的数据错误_C#_Excel_Sharepoint_Openxml - Fatal编程技术网

C# 使用OpenXML打开Excel工作表时,文件包含损坏的数据错误

C# 使用OpenXML打开Excel工作表时,文件包含损坏的数据错误,c#,excel,sharepoint,openxml,C#,Excel,Sharepoint,Openxml,我正在为SharePoint 2013中添加的项目编写事件接收器。我正在使用OpenXML阅读电子表格。当我尝试以编程方式打开SharePoint库中的日志文件时,出现以下错误: 文件包含损坏的数据 引发此错误的代码块是: using (SpreadsheetDocument spreadsheet = SpreadsheetDocument.Open(mstream, false)) using (SpreadsheetDocument logsheet = SpreadsheetDocume

我正在为SharePoint 2013中添加的项目编写事件接收器。我正在使用OpenXML阅读电子表格。当我尝试以编程方式打开SharePoint库中的日志文件时,出现以下错误:

文件包含损坏的数据

引发此错误的代码块是:

using (SpreadsheetDocument spreadsheet = SpreadsheetDocument.Open(mstream, false))
using (SpreadsheetDocument logsheet = SpreadsheetDocument.Open(logstream, false))
第一行顺利通过,第二行(记录表)中断。它们都是从流中读取的。电子表格是事件激发时添加的项目,日志表是SharePoint中当前存在的项目

使用以下路径从数据流打开电子表格:

string workbookpath = properties.ListItem.Web.Url + "/" + properties.ListItem.File.Url;
日志表是使用数据流打开的,数据流使用SharePoint中的直接URL

string logFilePath = "http://SPSiteName/sites/SP/Dropbox/RuntimeLog.xml";

非常感谢您的帮助或见解。

您的日志是一个XML文件[.XML]。它不是一个Excel文件[.xlsx](开放的XML不仅仅意味着XML)。这就是它失败的原因。

啊,愚蠢的我忘了设置Excel服务的读写权限。我在以下地方也找到了很多好信息:

以编程方式从SharePoint库读取excel文件

从Excel文件读取数据


我首先尝试将其作为.xlsx文件。同样的问题。我在某个地方读到一篇关于这个问题的随机博客,建议我也尝试使用.xml文件