首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

读取、修改Excel表的内容出错,不知错在何出,请高手赐教?解决方法

2012-04-07 
读取、修改Excel表的内容出错,不知错在何出,请高手赐教?程序开始已经确定引用“Microsoft Excel 11.0 Object

读取、修改Excel表的内容出错,不知错在何出,请高手赐教?
程序开始已经确定引用“Microsoft Excel 11.0 Object Library”
Imports Microsoft.Office.Interop.Excel ‘这两句导入不知起什么作用,不知如何使用?
‘Imports excel ‘程序开始只能用这句导入,后来用这句又出错,只能改成上面的导入才行?

Public Class Form1
  Dim xlExcel As Application
  Dim xlBook As Workbook
  Dim xlSheet As Worksheet
  Public Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  xlExcel = CreateObject("Excel.Application")  
  xlBook = xlExcel.Workbooks.Open(Filename:="c:\test.xls", Password:="")
  xlSheet = xlBook.Worksheets(1)
  content.Text = xlSheet.Cells(1, 1).value
  End Sub

  Private Sub row_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles row.TextChanged ‘指向Excel的行,改变行,则重新读取改变后的单元格内容
  content.Text = xlSheet.Cells(CInt(row.Text), CInt(col.Text)).value ’插入这句程序出错
  content.Text = "这句可以执行" ’这名可以正常执行
  End Sub

  Private Sub col_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles col.TextChanged ‘指向Excel的列,改变列,则重新读取改变后的单元格内容
  content.Text = xlSheet.Cells(2, 2).value ’插入这句程序出错
  content.Text = "这句可以执行" ’这名可以正常执行
  End Sub
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ‘单击按钮,修改Excel指定行列的单元格内容
  xlSheet.Cells(CInt(row.Text), CInt(col.Text)) = content.Text ‘可以正常执行
  End Sub

  Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  xlSheet = Nothing 
  xlBook.Close(True)
  xlBook = Nothing 
  xlExcel.Quit()
  xlExcel = Nothing
  End Sub

End Class

未处理InvalidOperationException
创建窗体时出错。有关详细信息,请参阅 Exception.InnerException。错误为: 未将对象引用设置到对象的实例。
获取此异常的常规帮助
InnerException:使用“new”关键字创建对象实例
InnerException:在调用方法前,通过检查确定对象是否为null.
获取有关该内部异常的一般性帮助信息

即时窗口:在 System.NullReferenceException 中第一次偶然出现的“Excel对象访问Excel.exe”类型的异常


[解决办法]
这样命名空间
Imports Excel = Microsoft.Office.Interop.Excel
这样新建一个excel。 
Dim xlApp(你要的文件名) As Excel.Application = New Excel.ApplicationClass
参考网站:
http://www.vbgood.com/thread-85174-1-1.html
[解决办法]
你现在是什么问题啊?首先引用Microsoft Excel 11.0 Object Library没问题了?导入Microsoft Excel 11.0 Object Library名称空间了没有?这是第一步
然后就是你的问题出现在什么地方?你是想干什么?你读取Excel(难道像用数据库那样用)?你的窗体是不是放置了Excel控件?你得把问题说清楚了,大家理解了才好解决啊?

[解决办法]
最好是能远程帮你看一下
[解决办法]

探讨
按楼上runnerchin说的试了,还是不行


对于我的代码,我还有一点补充说明:

下面的语句与函数是可以执行的,且可以看到效果!
content.Text = xlSheet.Cells(1, 1).value

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Event……

[解决办法]
纯C#代码的Excel读取源代码, 不需要Office Excel Com组件的支持,它的功能包括: 读出在工作簿(workbook)中的所有Worksheet,读出所有WorkSheet中的单元,读取单元的内容(文本,数字,日期或错误),读取单 元的格式...
http://download.csdn.net/detail/tebiefu/4146471
[解决办法]
看了一下,应该就是EXCEL读取和写入的问题,这个CSDN有好多例子,也很简单,我一直用下面的简例
需在项目中引用Microsoft.Office.Interop

 

Dim xlApp As New Microsoft.Office.Interop.Excel.Application


Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
xlBook = xlApp.Workbooks.Open("c:\1.xlsx")
xlSheet = xlBook.Worksheets("sheet1")
Dim i As Integer
For i = 1 To 10
xlSheet.Cells(6, i) = "测试vb.net写入" & i
Next
xlBook.Save()
xlBook.Close()
xlApp.Quit()
读取就更简单了
textbox1.text = xlSheet.Cells(6, 3).value

热点排行