Nov 9

Excel在程序中的重新打开 不指定

kcao , 09:06 , 技术 , 评论(0) , 引用(0) , 阅读(2648) , Via 本站原创 | |

C#中用如下代码输出Grid到Excel,

C# Code Copy Code To Clipboard
  1. public static Microsoft.Office.Interop.Excel.Application _excelobj = new Microsoft.Office.Interop.Excel.Application();  
  2.   
  3. public static Workbook _newbook = _excelobj.Workbooks.Add();  
  4.   
  5. ////...  
  6.   
  7. Microsoft.Office.Interop.Excel.Worksheet _newsheet = _newbook.ActiveSheet;   

在输出后如果关闭了Excel再调用输出,会在上面第7行出现错误 :

The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

究其原因,就是因为excel关闭以后,_newbook这个object不存在了。所以,在第7句前加一个判断即可解决:

C# Code Copy Code To Clipboard
  1. if (_excelobj.ActiveWorkbook == null)  
  2. {  
  3.      _newbook = _excelobj.Workbooks.Add();  
  4. }  
  5.   
  6. Microsoft.Office.Interop.Excel.Worksheet _newsheet = _newbook.ActiveSheet;   

 

Tags: , , , ,
发表评论
Please log on to continue. Thanks!
打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]