6

ClosedXMLを使用して Excel にエクスポートする C# アプリがあります。それは正常に動作しますが、私がヒットしたときに問題に遭遇しました:

  var ms = new MemoryStream();
  workbook.SaveAs(ms);

例外があります:

' ', hexadecimal value 0x0B, is an invalid character

特定のデータは正常に機能しますが、他のデータはこの問題を引き起こしているため、間違いなくデータに関連しています。

問題の原因となっている文字を特定するにはどうすればよいですか? また、それを理解したら、この文字がデータ内のどこにあるかを見つける最良の方法は何ですか?

4

3 に答える 3

6

ClosedXMLシートに入力したデータ/文字列に無効な文字があるため、それらを見つけて取得する必要があります。

最も簡単な解決策は、追加することです

.Replace((0x0B).ToString(), " ")

すべての文字列に垂直タブを取り除き、スペースに置き換えます。

于 2013-11-26T10:20:20.850 に答える
6

ClosedXML はオープン ソース プロジェクトであるため、エラーを追跡する最も簡単な方法は、ソース*からビルドし、デバッグ モードでライブラリに対してコードを実行することです。

完全なスタック トレースが表示されたら、エラーが発生している場所を特定できるはずです。あなたが言及したエラーはClosedXMLプロジェクトの外部のライブラリによって報告されているため、ClosedXMLプロジェクトがMicrosoft XMLライブラリを使用する方法のバグである可能性が高いです。


プロジェクトをダウンロードして、ビルドしてみました。パッケージ内のすべてがclosedxml-79843.zip正しくビルドされます。

于 2013-11-26T19:34:42.260 に答える