2012-07-26 22 views
-2

我嘗試使用openxml sdk 2.0.....給我寫一個大的轉換後的xml數據,excel給我一個很大的異常。我認爲Open xml不支持將批量數據寫入excel。 .i能寫50000行。這是我的代碼::使用Openxml將巨大的xml導出爲ex​​cel

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(); 
     } 
    } 

是否有任何可能,我們可以將數據寫入塊而不是一次寫入。

+1

請格式化您的代碼,以便閱讀。 – 2012-07-26 17:49:57

+1

你有什麼「特例」? – 2012-07-26 17:50:17

+0

請注意,所有版本的Excel都具有可顯示的最大行數。一般來說,這是65535(Int16)。 Excel將忽略任何進一步的記錄。這個限制是per-sheet而不是per-workbook,所以如果需要的話你可以打破數據 – Basic 2012-07-26 18:26:30

回答

0

如果字符串長度,你可以使用

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

一塊一塊來轉換,甚至重複使用字節數組。

1

是否有任何可能性,我們可以寫入數據到塊 exce,而不是寫在一個鏡頭。

沒有,但你可以使用的OpenXML庫與XmlTextWriter的結合來解決這樣的問題。

看看我的免費C#「導出到Excel」庫中的源代碼。

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

我試圖建立.xlsx文件,我想在內存寫的整個Excel的「圖像」時,有同樣的問題。最終,你的應用程序只會耗盡內存,並崩潰。