使用Openxml将巨大的xml导出到excel

时间:2012-07-26 17:48:21

标签: c# xml stream openxml export-to-excel

我尝试使用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();
        } 
    } 

我们是否有可能将数据写入大块而不是一次性写入。

2 个答案:

答案 0 :(得分:1)

  

我们是否有可能将数据写入块中   而不是一次性写作。

不,但您可以将OpenXML库与XmlTextWriter结合使用来解决这类问题。

查看我的免费C#中的源代码"导出到Excel"这样做的图书馆。

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

在尝试构建"图像时遇到了同样的问题"我希望在内存中编写的整个Excel .xlsx文件。最终,您的应用程序将耗尽内存并崩溃。

答案 1 :(得分:0)

如果字符串很长,您可以使用

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

逐个转换,甚至重用字节数组。