-2

私はopenxml sdk 2.0を使用して大きな変換されたxmlデータをExcelに書き込もうとしました..それは私に大きな例外を与えました.私はOpen xmlが大量のデータをExcelに書き込むことをサポートしていないと思います..私は50000行を書くことができました. これは私のコードです::

 public void AddPartXml(OpenXmlPart part, string xml)
     { 
        using (Stream stream = part.GetStream())
        {
          byte[] buffer = (new UTF8Encoding()).GetBytes(xml);
          stream.Write(buffer, 0,buffer.Length);
          stream.Dispose();
        } 
    } 

一発で書き込むのではなく、チャンクでエクセにデータを書き込むことができる可能性はありますか?

4

2 に答える 2

1

一発で書き込むのではなく、チャンクでエクセにデータを書き込むことができる可能性はありますか?

いいえ。ただし、OpenXML ライブラリを XmlTextWriter と組み合わせて使用​​すると、このような問題を回避できます。

これを行う無料の C# "Export to Excel" ライブラリのソース コードを見てください。

http://www.mikesknowledgebase.com/pages/CSharp/ExportToExcel.htm

メモリに書き込みたい Excel .xlsx ファイル全体の「イメージ」を作成しようとしたときに、同じ問題が発生しました。最終的に、アプリケーションはメモリ不足になり、クラッシュします。

于 2014-01-28T14:18:18.937 に答える
0

文字列が長い場合は、

public override int GetBytes(
string s,
int charIndex,
int charCount,
byte[] bytes,
int byteIndex
)

バイト配列を再利用する場合でも、1つずつ変換します。

于 2012-07-26T18:23:15.727 に答える