ry { string s="select * from Name.TableName"; OleDbCommand cmd=new OleDbCommand (s,com); OleDbDataReader dr=cmd.ExecuteReader (); Excel.Application xlApp = new Excel.Application(); if(xlApp==null){MessageBox.Show ("Can’t open Excel!");return;} xlApp.Application .Workbooks .Add (true); int row=2,fieldcount; fieldcount=dr.FieldCount ; for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col); while (dr.Read ()) { for(int col=0;col<fieldcount;col++) xlApp.Cells [row,col+1]=dr.GetValue(col).ToString(); row++; } xlApp.Visible =true; xlApp=null; } catch(Exception ex ){MessageBox.Show (ex.Message );} finally {com.Close();} } catch(Exception ex){MessageBox.Show (ex.Message );} } } 3.5安装一个使用COM组件的.NET程序 如果要将这样的程序安装运行在另一台机器上,那么除了安装运行程序外,还做三件事。 首先,是安装.NET运行系统。因为任何一个.NET程序都不能离开.NET运行系统去独立运行。 其次,所调用的COM组件必须要安装在目标机器上。本例中大多数目标机器上都装有Microsoft Office的Excel,一般不会有这个问题。但如果是另一个用户自定义的COM组件,那么这个COM组件在运行.NET程序之前必须先安装好。 最后,转换后的.NET组件DLL文件要安装在目标机器上。因为.NET组件不需要在Windows Registry中注册,所以最简单的方法是将.NET组件DLL文件拷贝到运行程序目录下。如果此.NET组件被多个.NET程序共享,可以将其安装在.NET公用组件区中,从而可被任何一个.NET组件使用。只有当一个.NET组件参与了事务处理时,才需要将它注册为一个COM+组件。因为.NET仍然用传统的COM+机制来处理事务的提交、回滚等。 4 小结 通过以上讨论,我们知道了在C#中,如何使用Excel的COM组件。需要注意的是,Excel对象包含的许多内容我们没有介绍,在使用过程中需要我们不断学习。也使我们了解了在C#中如何使用COM组件。
参考文献: [1] 刘洪成 C#高级编程 清华大学出版社 2003.7工作 187~200 上一页 [1] [2]
Tags:
|