现在在做一个WINFORM程序(C#操作EXCEL文件),但发现执行效率很低,现在想方法改良。
1.我每次进行EXCEL文件内容修改时,都会打开EXCEL文件,修改完毕后保存并关闭掉。
分析:在打开EXCEL和保存和关闭,会很耗费时间,如何改良?在一打开程序主界面时就将需要操作的多个EXCEL文件打开吗?迷茫
2.在数据库读取时,我总是当用到数据时才到数据库中进行查询。
分析:在每次读取时,都会浪费时间,多次是读取同一个数据集,只是查询条件有变,这时我是不是应该在一打一程序主界面时,就将需要的数据集全部读入各自的DataTable,之后只需对这些DataTable进行访问了,只有当需要修改数据时才重新建立数据集对象,是不是应该这样呢?
请大家指点一二!谢谢!

解决方案 »

  1.   

    1.是有这问题的,但是不明白你在打开程序主界面的时候为什么要打开多个excel
    2.winform程序是可以这样来做的.
      

  2.   

    你可以到这里看看,应该有答案的
    http://www.pcbit.com.cn
      

  3.   

    回(软件_小菜):
    因为要处理的EXCEL文件不只一个,频繁的打开,保存与并闭都会影响效率的,我是这样认为的。
      

  4.   

    1、不知你这里的修改Excel是什么意思,是要导出几个Excel吗?如果是将一些数据写入到一个Excel上,我自己做的感觉并不很慢,可能range大会导致速度慢,楼主可以试着将range变小一点试试,如果慢到影响其它操作,只有用多线程了。
    2、如果数据并没有修改,你读出的Dataset中的数据就是一直可用的,可以不对数据库进行访问,直接操作dataset就可以了,如果有了更新就要实时读取了。
      

  5.   

    1.winform下打开保存单个excel不会耗时,如果是要保存多个excel的批处理,耗时也是没办法,做个进度条显示处理文件数相信用户可以理解,打开主界面就加载可能不大合适,效率还是小事,用户体验会很差:我还什么都没做呢,你就让我等 还这么占内存?
    2,你这样做的话可能是将多次等待的时间变成一次性的等待,数据库查询的效率可以通过设置索引等方法提高,一次性载入数据量大的话可能会有问题,是不是根据查询条件再看一下数据库的设计。good luck.