Har*_*ish 3 c# xml string excel
我有一个应用程序,其中打开用户输入的大量数据的XLS文件,并将其中的数据转换为XML.我已经将XLS文件中的列映射到XML Maps.当我尝试在XMLMaps中使用ExportXml方法时,我得到一个包含XLS文件的正确XML表示的字符串.我解析了这个字符串并将其上传到我的服务器.
问题是,当我的XLS文件非常大时,为XML生成的字符串超过2 GB,我得到一个Out of Memory异常.我知道CLR对象的限制是2 GB.但就我而言,我需要处理这种情况.目前我只是要求用户发送更少的数据.
有关如何做到这一点的任何想法?
编辑:
这只是我需要对生成的XML执行的操作的一个例子.
虽然XMLReader流是个好主意,但我无法通过该方法执行这些操作.虽然数据验证可以由Excel本身完成,但其他事情不能在这里完成.
使用XMLTextReader和XMLTextWriter并为每个步骤创建自定义方法是我想到的解决方案.但是要通过上面的jist,它需要XML文档经过或处理4次.这只是效率不高.
如果XML很大,那么您可以使用Export导出到临时文件,而不是将ExportXML用于字符串 - http://msdn.microsoft.com/en-us/library/microsoft.office.interop. excel.xmlmap.export.aspx
如果您需要在C#中解析/处理XML,那么为了处理如此大的XML结构,您可能最好实现在流级别工作的自定义XMLReader(或XMLWriter).请参阅此问题以获得一些类似的建议 - 在C#中解析大型XML(大小为1GB)的最佳方法是什么?