读取、修改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控件?你得把问题说清楚了,大家理解了才好解决啊?
[解决办法]
最好是能远程帮你看一下
[解决办法]
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