SharePoint 2013 で ItemAdded のイベント レシーバーを作成しています。スプレッドシートを読み取るために OpenXML を使用しています。SharePoint ライブラリにあるログファイルをプログラムで開こうとすると、次のエラーが発生します。
ファイルに破損したデータが含まれています
このエラーをスローするコード ブロックは次のとおりです。
using (SpreadsheetDocument spreadsheet = SpreadsheetDocument.Open(mstream, false))
using (SpreadsheetDocument logsheet = SpreadsheetDocument.Open(logstream, false))
最初の行は問題なく通過し、2 行目 (ログシート) は壊れています。どちらもストリームから読み取られています。スプレッドシートはイベントが発生したときに追加されるアイテムで、ログシートは現在 SharePoint に存在するアイテムです。
スプレッドシートは、次のパスを使用してデータ ストリームから開かれます。
string workbookpath = properties.ListItem.Web.Url + "/" + properties.ListItem.File.Url;
ログシートは、SharePoint の直接 URL を使用してデータストリームを使用して開かれます
string logFilePath = "http://SPSiteName/sites/SP/Dropbox/RuntimeLog.xml";
どんな助けや洞察も大歓迎です。