这种格式的xml文件如何转换为excel文件? 1000C

有xml文件格式如下:
http://share.weiyun.com/c8a88579342aca67544eb05a04f20b1d

请问上述xml文件如何转换为excel文件?另外,单个xml文件大小为5MB,一次需要批量处理一万个左右这样的xml文件,请问如何做才能性能最优? (C#语言)

11个回答

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

1000C币啊,已吓尿@^@

微软公司的EXCEL文件是用纯XML写的,尝试使用一下OPEN XML SDK开放接口,把XML当成一个EXCEL文件进行处理。
或者是直接生成Excel文件进行对接。

有xml文件格式过期啦,看不到啊。
你是要把所有XML的文件都存到一个Excel文件中吗?

在Excel里打开xml文件,然后【另存为】选 xls

thinmanwang
thinmanwang 回复CodeofWorker: 麻烦看一下那个xml文件格式再回答。
5 年多之前 回复
CodeofWorker
CodeofWorker 如果想用C#读指定的字段,使用linq to XML
5 年多之前 回复

linq to XML,微软已经封装好了编历,你用就是,这样是最有效率的,除非你不用C#
图片说明

最好不要通过XML传递数据,从实际使用来看,传输效率太低(耗时\费力)!

我来说说第二个问题吧,10000个5MB=50000MB≈50GB,好大啊有木有,假设处理一个文件需要1s,则处理完需要50000s≈13.9hour。

这就需要并行处理这个问题了,将数据分成两份处理,节省一半时间,则6.4小时的样子。

如果再来两个进程来处理,则再节省一半,需要3.2小时的样子。

这样看来,想要快速完成,必须多个进程/线程进行负荷分担。

当然也不是越多的进程/线程越好,这个要看服务器的cpu处理能力了(多核)。
如果服务器不够强大,可以用多个服务器来共同处理,将文件平均分发/挂载到不同的服务器上(不同的文件夹)
不同的服务器上分别启动多个处理xml的c#进程,这样可以达到一定的性能指标。
具体分多少个服务器和进程,要测试出相应的处理速度,然后计算得到。

C++ 处理比较快吧,C#,可以主动释放内存吗?
建议你C++实现。

转成cvs格式最简单,也最快速

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问