1、最新Visual C#操作Excel详解Word版VisualC的Excel编程Excel是微软公司办公自动化套件中的一个软件,他主要是用来处理电子表格。Excel以其功能强大,界面友好等受到了许多用户的欢迎。在办公的时候,正是由于Excel的这么多的优点,许多重要的数据,往往以Excel电子表格的形式存储起来。这样就给程序员带来了一个问题,虽然Excel功能比较强大,但毕竟不是数据库,在程序中处理数据库中的数据比其处理Excel表格中的数据容易许多。那么如何用VisualC读取Excel表格中的数据?在以前用Delphi编程的时候,对于不同的用户,他们对于打印的需求是不一样的,如果要使得程序
2、中的打印功能适用于每一个用户,可以想象程序设计是十分复杂的。这时想到Excel,由于Excel表格的功能强大,又由于几乎每一台机器都安装了它,如果把程序处理的结果放到Excel表格中,这样每一个用户就可以根据自己的需要在Excel中定制自己的打印。这样不仅使得程序设计简单,而且又满足了诸多用户的要求,更加实用了。那么用VisualC如何调用Excel,如何又把数据存放到Excel表格中。本文就来探讨一下上述问题的解决办法。一程序设计及运行环境(1)微软视窗2000服务器版(2).NetFrameworkSDKBeta2(3)MicrosoftDataAccessComponent2.6以上版本
3、(MDAC2.6)(4)Office2000套件二VisualC读取Excel表格中的数据本节将通过一个程序来介绍VisualC读取Excel表格中的数据,并把数据以DataGrid的形式显示出来。(1)如何读取数据其实读取Excel表格中的数据和读取数据库中的数据是非常类似的,因为在某种程度上Excel表格可以看成是一张一张的数据表。其二者的主要区别在于所使用的数据引擎不一样。在本文的程序中,通过下列代码实现读取Excel表格数据,具体如下:/创建一个数据链接stringstrCon=Provider=Microsoft.Jet.OLEDB.4.0DataSource=c:sample.xl
4、s;ExtendedProperties=Excel8.0OleDbConnectionmyConn=newOleDbConnection(strCon)stringstrCom=SELECT*FROMSheet1$myConn.Open()file:/打开数据链接,得到一个数据集OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn)file:/创建一个DataSet对象myDataSet=newDataSet()file:/得到自己的DataSet对象myCommand.Fill(myDataSet,Sheet1$)file:
5、/关闭此数据链接myConn.Close()怎么样读取Excel表格中的数据其实和读取数据库中的数据没有什么实质上的区别。注释:这里读取的是C盘根目录下的Sample.xls文件。(2)用DataGrid来显示得到的数据集在得到DataSet对象后,只需要通过下列二行代码,就可以把数据集用DataGrid显示出来了:DataGrid1.DataMember=Sheet1$DataGrid1.DataSource=myDataSet(3)用VisualC读取Excel表格并用DataGrid显示出来的程序代码(Read.cs)和程序运行的界面掌握了上面二点,水到渠成就可以得到以下代码:using
6、SystemusingSystem.DrawingusingSystem.CollectionsusingSystem.ComponentModelusingSystem.Windows.FormsusingSystem.DatausingSystem.Data.OleDbpublicclassForm1:FormprivateButtonbutton1privateSystem.Data.DataSetmyDataSetprivateDataGridDataGrid1privateSystem.ComponentModel.Containercomponents=nullpublicForm
7、1()InitializeComponent()/初始化窗体中的各个组件GetConnect()/打开数据链接,得到数据集/清除程序中使用过的资源protectedoverridevoidDispose(booldisposing) if(disposing)if(components!=null)components.Dispose() base.Dispose(disposing) privatevoidGetConnect()/创建一个数据链接stringstrCon=Provider=Microsoft.Jet.OLEDB.4.0DataSource=c:sample.xls;Exte
8、ndedProperties=Excel8.0OleDbConnectionmyConn=newOleDbConnection(strCon)stringstrCom=SELECT*FROMSheet1$ myConn.Open()/打开数据链接,得到一个数据集OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,myConn)file:/创建一个DataSet对象myDataSet=newDataSet()/得到自己的DataSet对象myCommand.Fill(myDataSet,Sheet1$)/关闭此数据链接myConn.Close
9、()privatevoidInitializeComponent()DataGrid1=newDataGrid()button1=newButton()SuspendLayout()DataGrid1.Name=DataGrid1;DataGrid1.Size=newSystem.Drawing.Size(400,200)button1.Location=newSystem.Drawing.Point(124,240)button1.Name=button1button1.TabIndex=1button1.Text=读取数据button1.Size=newSystem.Drawing.Siz
10、e(84,24)button1.Click+=newSystem.EventHandler(this.button1_Click)this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14)this.ClientSize=newSystem.Drawing.Size(400,280)this.Controls.Add(button1)this.Controls.Add(DataGrid1)this.Name=Form1this.Text=读取Excle表格中的数据,并用DataGrid显示出来!this.ResumeLayout(false)priva
11、tevoidbutton1_Click(objectsender,System.EventArgse)DataGrid1.DataMember=Sheet1$DataGrid1.DataSource=myDataSetstaticvoidMain()Application.Run(newForm1()(4)总结以上只是读取了Excel表格中Sheet1中的数据,对于其他Sheet中的内容,可以参照读取Sheet1中的程序,只作一点修改就可以了,譬如要读取Sheet2中的内容,只需要把Read.cs程序中的Sheet1$改成Sheet2$就可以了。三VisualC调用Excel表格,并在Exce
12、l表格中存储数据在VisualC中调用Excel表格,并不像读取Excel表格中的数据那么容易了,因为在VisualC中调用Excel表格要使用到Excel的COM组件。如果你安装Office套件在C盘,那么在C:ProgramFilesMicrosoftOfficeOffice可以找到这个COM组件EXCEL9.OLB,在VisualC如何使用ActiveX组件一文中,这些COM组件都是非受管代码的,要在VisualC中使用这些非受管代码的COM组件,就必须把他们转换成受管代码的类库。所以在用VisualC调用Excel表格之前,必须完成从COM组件的非受管代码到受管代码的类库的转换。(1)
13、非受管代码COM组件转换成受管代码的类库首先把COM组件EXCEL9.OLB拷贝到C盘的根目录下,然后输入下列命令:tlbimpexcel9.olb这样在C盘的根目录下面就产生了三个DLL文件:Excel.dll、Office.dll、VBIDE.dll。在产生了上面的三个文件后,这种转换就成功完成了。在下面的程序中,就可以利用这转换好的三个类库编写和Excel表格相关的各种操作了。注释:1在安装的程序中或许找不到excel9.olb,可以利用下面的命令格式获取dll文件Tlbimpexecel.exe也可以生成文件Excel.dll,VBIDE.dll2也可以使用VisualS2003或其以上版本添加引用找到Excel.exe文件,会自动转化为excel.dll文件,然后在程序中添加包含即可例如:usingExcel;请根据包的不同情况添加。(2)VisualC打开Excel表格:在Excel.dll中定义了一个命名空间Excel,在差命名空间中封装了一个类Application,这个类和启动Excel表格有非常重要的关系,在VisualC中,只需要下列三行代码就可以完成打开Excel表格的工作,具体如下:Excel.Applicationexcel=newExcel.Applica
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1