thinmanwang
thinmanwang
采纳率0%
2015-05-16 01:18 浏览 8.7k

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

1000

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

11条回答 默认 最新

  • devmiao devmiao 2016-04-27 09:50
     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();
    }
    
    点赞 2 评论 复制链接分享
  • sheldor 程序狗觅食中 2015-05-16 14:53

    1000C币啊,已吓尿@^@

    点赞 1 评论 复制链接分享
  • bookyjh bookyjh 2015-05-20 14:08

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

    点赞 1 评论 复制链接分享
  • testcs_dn 微wx笑 2015-06-21 08:10

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

    点赞 1 评论 复制链接分享
  • CodeofWorker CodeofWorker 2015-05-16 01:24

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

    点赞 评论 复制链接分享
  • CodeofWorker CodeofWorker 2015-05-16 03:10

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

    点赞 评论 复制链接分享
  • bookyjh bookyjh 2015-05-17 15:45

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

    点赞 评论 复制链接分享
  • henuyx Heart09 2015-05-18 04:26

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

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

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

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

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

    点赞 评论 复制链接分享
  • q610098308 恋恋西风 2016-04-27 09:46

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

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 2016-06-14 13:03

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

    点赞 评论 复制链接分享
  • Black_Fox123 Black_Fox123 2018-05-04 09:44

    在Excel里打开xml文件,然后【另存为】选 xls,如果还不行吗,你就看看这个
    https://jingyan.baidu.com/article/7082dc1c49b90fe40a89bd1b.html

    点赞 评论 复制链接分享

相关推荐