有xml文件格式如下:
http://share.weiyun.com/c8a88579342aca67544eb05a04f20b1d
请问上述xml文件如何转换为excel文件?另外,单个xml文件大小为5MB,一次需要批量处理一万个左右这样的xml文件,请问如何做才能性能最优? (C#语言)
在Excel里打开xml文件,然后【另存为】选 xls
linq to XML,微软已经封装好了编历,你用就是,这样是最有效率的,除非你不用C#
1000C币啊,已吓尿@^@
最好不要通过XML传递数据,从实际使用来看,传输效率太低(耗时\费力)!
我来说说第二个问题吧,10000个5MB=50000MB≈50GB,好大啊有木有,假设处理一个文件需要1s,则处理完需要50000s≈13.9hour。
这就需要并行处理这个问题了,将数据分成两份处理,节省一半时间,则6.4小时的样子。
如果再来两个进程来处理,则再节省一半,需要3.2小时的样子。
这样看来,想要快速完成,必须多个进程/线程进行负荷分担。
当然也不是越多的进程/线程越好,这个要看服务器的cpu处理能力了(多核)。
如果服务器不够强大,可以用多个服务器来共同处理,将文件平均分发/挂载到不同的服务器上(不同的文件夹)
不同的服务器上分别启动多个处理xml的c#进程,这样可以达到一定的性能指标。
具体分多少个服务器和进程,要测试出相应的处理速度,然后计算得到。
微软公司的EXCEL文件是用纯XML写的,尝试使用一下OPEN XML SDK开放接口,把XML当成一个EXCEL文件进行处理。
或者是直接生成Excel文件进行对接。
有xml文件格式过期啦,看不到啊。
你是要把所有XML的文件都存到一个Excel文件中吗?
C++ 处理比较快吧,C#,可以主动释放内存吗?
建议你C++实现。
public static void ConvertExcel(string savePath)
{
//将xml文件转换为标准的Excel格式
Object Nothing = Missing.Value;//由于yongCOM组件很多值需要用Missing.Value代替
Excel.Application ExclApp = new Excel.ApplicationClass();// 初始化
Excel.Workbook ExclDoc = ExclApp.Workbooks.Open(savePath, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing);//打开Excl工作薄
try
{
Object format = Excel.XlFileFormat.xlWorkbookNormal;//获取Excl 2007文件格式
ExclApp.DisplayAlerts = false;
ExclDoc.SaveAs(savePath, format, Nothing, Nothing, Nothing, Nothing, Excel.XlSaveAsAccessMode.xlExclusive, Nothing, Nothing, Nothing, Nothing, Nothing);//保存为Excl 2007格式
}
catch (Exception ex) { }
ExclDoc.Close(Nothing, Nothing, Nothing);
ExclApp.Quit();
}
转成cvs格式最简单,也最快速
在Excel里打开xml文件,然后【另存为】选 xls,如果还不行吗,你就看看这个
https://jingyan.baidu.com/article/7082dc1c49b90fe40a89bd1b.html