同一个sheet中连续导入Excel就会使程序无响应
本帖最后由 fosfa 于 2016-3-8 18:33 编辑在我的程序中需要在同一个sheet中先导入一个Excel文件,进行一定操作后 再导入另外一个Excel文件,代码如下
sheet1.OpenExcel("D://DATA.xls"); //在sheet1中打开文件:DATA.xls
...... ;//对表格中的数据进行一定处理。
sheet1.OpenExcel("D://Result.xls");//在sheet1中打开文件:Result.xls
但是我写出来的程序一运行不是没有响应,就是在打开Result.xls后sheet1中的内容为Result.xls与DATA.xls的叠加。
我是刚自学入行的纯小白,请问大神,这该怎么整? 是不是应该在打开第一个Excel后需要释放一下啊? 按理说,第二次加载会冲掉第一次加载的内容以及你处理的内容。不应该出现叠加的问题。 回复 2楼gw0506的帖子
但我这边的结果是只要连续打开两个Excel,就会是程序没有响应。。例如:
sheet1.OpenExcel("D://DATA.xls");
sheet1.OpenExcel("D://Result.xls");
连续写这两个语句,中间不夹杂其它任何语句, 然后运行程序,就会直接没有响应 因为多线程导致的。你加一句代码this.spread1.Workbook.LoadExcelOnDemand = false;
另外,你这样加载文件,等于只加载了Result.xls,没有必要。所以一般不会这么做。 回复 4楼gw0506的帖子
谢谢你,加上这个语句后果然可以了, 能告诉我这个语句是什么意思吗? LoadExcelOnDemand 为true的时候,后台加载,启动多线程。文件被占用,所以报错。 gw0506 发表于 2016-3-8 14:04
LoadExcelOnDemand 为true的时候,后台加载,启动多线程。文件被占用,所以报错。
谢谢!!! fosfa 发表于 2016-3-8 18:32
谢谢!!!
不客气~~
页:
[1]