C#操作Excel指令SaveCopyAs出现问题

ToBeSylar 2012-06-07 09:15:25
我用个timer去定时的保存Excel内容,当内容足够时,我使用了
MyExcel.ActiveWorkbook.SaveCopyAs("\\E:\\work2.xls");
我可以在E盘看到work2在条件下生成了,当我打开Excel查看内容时,内容也是如期所想,问题就出现在:
此时我的程序还在跑,Timer还在动作,这时候当我那边开始继续往原来的Excel写入的时候,我打开的这个
work2.xls被跳成我还在写入的Excel,然后执行了close。
也就是说,我打开work2就被关闭了。。。执行关闭的是我还在跑的程序。
为什么我work2还要受到原程序的控制???这不相关了呀。。。
Excel.Workbook workbook = MyExcel.Workbooks.Open(Application.StartupPath + "/test.xls", 0, false,
5, System.Reflection.Missing.Value, System.Reflection.Missing.Value, false, System.Reflection.Missing.Value,
System.Reflection.Missing.Value, true, false, System.Reflection.Missing.Value, false, false, false);
//选到Sheet2
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[2];


string temp = "111";
worksheet.Cells[31 + save_cnt, 3] = temp;


// MyExcel.Visible = true;
MyExcel.DisplayAlerts = false; //保存Excel为当前选中的Sheet,不再询问
MyExcel.AlertBeforeOverwriting = false;//保存Excel为当前选中的Sheet,不再询问
MyExcel.ActiveWorkbook.Save();
save_cnt++;
if (save_cnt == 10)
{
MyExcel.ActiveWorkbook.SaveCopyAs("\\E:\\work2.xls");
}
// Thread.Sleep(300);
MyExcel.ActiveWorkbook.Close(false, false, false);
MyExcel.Quit();
timerSave.Enabled = true;
GC.Collect();//强制垃圾回收。否则Excel.exe不能及时退出

...全文
713 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ToBeSylar 2012-06-08
  • 打赏
  • 举报
回复
最后次顶贴了。。沉了就没机会了。。。。没人帮忙么?
就是只要我软件还在运行,一个我另存为其他地方的Excel,一旦我打开就会被强制切换成原Excel并且关闭。
感觉就是藕断丝连,不能单独的自己打开使用。
ToBeSylar 2012-06-07
  • 打赏
  • 举报
回复
UPUP,希望有大侠帮忙解决下,小弟非常困惑中。。。。。
ToBeSylar 2012-06-07
  • 打赏
  • 举报
回复
没人碰到过这样的问题么??这不科学呀。。。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧