OpenXML(2.5)を使用してカスタマイズしたスプレッドシートを作成しています。私が使用しているVMでは、OpenXMLスプレッドシートがうまく機能しているOpen Officeしかありません(カスタム書式など)。ただし、Microsoft Officeを搭載したコンピュータにファイルを移動すると、破損したデータが原因でファイルの各バージョンが開けませんでした。私はすべてのカスタマイズを取り出して、まだ(Open Officeで働いていた)壊れた結果を残していました。OpenXML Excelで破損しているスプレッドシート
これは、Open Officeで動作するが、Excelでは破損していると思われる、裸のスプレッドシートファイルのコードです。
public string CreateGrid()
{
var path = Path.GetTempFileName();
var document = SpreadsheetDocument.Create(path, SpreadsheetDocumentType.Workbook);
var workbookpart = document.AddWorkbookPart();
workbookpart.Workbook.Save();
document.Close();
return path;
}
エラーは「テキストコンテンツに無効な文字が見つかりました」です。 行:1 カラム:1 ファイルオフセット:0 コードでわかるように、私はまだテキストを追加していませんが、私はかなり違法な文字ではないことを確信しています。どんな助けでも大歓迎です。
問題を再現するXLSXファイルをどこかにアップロードできますか?私はそれを見て、どのような問題があるのかを教えてくれるでしょう。 –
私は元の問題と、それが単なるワークブックのときに失敗した理由を理解することができました。 Excelは、すべての要素がそこに存在することを期待しています(ブック、ワークシート、およびコンテンツ)。ワークブックしかない場合は、チェックに失敗します。私が持っていたオリジナルの問題は、各繰り返しで新しい行を作成していないということでした。基本的には、その内部に複数の行を持つ単一の行を作成していました。 Noobの間違いは、-_-の一部になる可能性があります。 – Thecor