C# 使用Openxml将大型xml导出到excel

C# 使用Openxml将大型xml导出到excel,c#,xml,stream,openxml,export-to-excel,C#,Xml,Stream,Openxml,Export To Excel,我尝试使用openxml sdk 2.0将大量转换后的xml数据写入excel。这给了我一个很大的例外。我认为openxml不支持将大量数据写入excel。我能够写入50000行。这是我的代码:: public void AddPartXml(OpenXmlPart part, string xml) { using (Stream stream = part.GetStream()) { byte[] buffer = (new

我尝试使用openxml sdk 2.0将大量转换后的xml数据写入excel。这给了我一个很大的例外。我认为openxml不支持将大量数据写入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();
        } 
    } 

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

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

public override int GetBytes(
string s,
int charIndex,
int charCount,
byte[] bytes,
int byteIndex
)
逐段转换,甚至重用字节数组

我们是否有可能将数据写入exce块中 而不是一次就写

不需要,但是您可以将OpenXML库与XmlTextWriter结合使用来解决类似的问题

看看我的免费C#“导出到Excel”库中的源代码,它可以实现这一点


我在试图构建整个Excel.xlsx文件的“图像”时遇到了同样的问题,我想将其写入内存。最终,您的应用程序将耗尽内存并崩溃。

请格式化代码,使其易于阅读。您遇到的“大异常”是什么?请注意,所有版本的excel都有一个最大可显示行数。一般来说,这是65535(Int16)。Excel将忽略任何其他记录。此限制为每张工作表,而不是每个工作簿,因此您可以在需要时分解数据be@basic我使用的是ms excel2010,根据信息,它支持大约10,48576行。。基本的问题是,一旦创建了工作表,并将行以批方式追加到工作表中..如何将下一批行追加到该工作表中..正如您所知,openxml需要特定的格式..如果您需要我传递给excel的xml格式,将提供给您..非常正确的回复:2010。不幸的是,我不知道你的Qlink的答案是坏的。