以前也总是编写一些excel下的VBA程序,也就几百行代码便可以基本上解决问题。从来没有使用过VC或者VB、Delphi来做此类事情。我想如果做报表的话,相对规模和功能都要多一些,这应该算是excel开发的重点。 这次使用了VB.NET开发一个访问excel读取数据并修改的小程序,有一些经验性的东西和大家共享,如果有误还请大家指正。 大致分为这样几个部分来说明: 1、 准备部分: 准备部分我们需要添加excel library的引用到工程中:我使用office2003,它的库文件为 Microsoft excel 11.0 object library。如果使用excel2000,那么它使用的是Microsoft excel 9.0 object library。 有需要时,我们添加Imports 命名空间。 我在这个程序中只是访问了excel的数据,不需要命名空间了哈。 2、 声明一些对象: 这些对象并不是都需要,前面三个应该有,后面的,你需要什么对象就声明: Dim excelapp As Excel.Application ‘声明一个application对象 Dim excelworkbook As Excel.Workbook ‘声明一个工作簿对象 Dim excelsheet As Excel.Worksheet ‘声明一个工作表对象 等等…如: Dim excelrange As Excel.Range ‘声明一个范围对象 3、 访问一个excel文件: excelapp = New Excel.Application excelworkbook = excelapp.Workbooks.Open(strfile) ‘访问到工作簿:这个strfile 是文件的路径,我从打开文件对话框中得到的。 excelsheet = excelworkbook.Sheets.Item(1) ‘访问到工作表:item使用索引值来得到sheet对象的引用 excelsheet.activate 我们可以得到此文件中的值: 定义一个string变量: Dim strcellvalue as string Strcellvalue=excelsheet.cells(1,1).value ‘得到A1单元格的内容。 修改的时候反过来就可以了: excelsheet.cells(1,1).value= Strcellvalue 4、 善后: 在程序的每一个退出口操作excel对象,保存或者不保存: Excelworkbook.save Excelworkbook.close Excelapp=nothing 5其它: 需要注意~上面的代码需要一些容错机制,比如: If Not excelworkbook Is Nothing Then 这样的话来达到程序的正确运行 需要判断现在excel又没有打开。如果有excel进程正在运行。你的代码很可能会影响到打开的excel,像Excelworkbook.close这样的语句虽然前面已经很好的唯一指定了工作簿,但不能很武断的进行鲁莽的操作,我们需要判断现在excel的运行情况。 |