vb.net怎么访问excel表格我的是2007版本,其它类似
1.在工程中引用Microsoft Excel 12.0 Object Library
2、在通用对象的声明过程中定义EXCEL对象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作VB.NET EXCEL常用命令:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
还有很多,这个要自己慢慢摸索
vb.net 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=https://www.04ip.com/post/excelsheet.cells(1,1).value ‘得到A1单元格的内容 。
修改的时候反过来就可以了:
excelsheet.cells(1,1).value= https://www.04ip.com/post/Strcellvalue
4、善后:
在程序的每一个退出口操作excel对象 , 保存或者不保存:
Excelworkbook.save
Excelworkbook.close
Excelapp=nothing
5其它:
需要注意~上面的代码需要一些容错机制 , 比如:
If Not excelworkbook Is Nothing Then 这样的话来达到程序的正确运行
需要判断现在excel又没有打开 。如果有excel进程正在运行 。你的代码很可能会影响到打开的excel,像Excelworkbook.close这样的语句虽然前面已经很好的唯一指定了工作簿,但不能很武断的进行鲁莽的操作,我们需要判断现在excel的运行情况 。
另外,VB.NET 读取Excel 2007的xlsx文件和读取老的.xls文件是一样的 , 都是用Oledb读取,仅仅连接字符串不同而已 。读取xlsx 用的是Microsoft.Ace.OleDb.12.0;具体操作方法如下:
Public Shared Function GetExcelToDataTableBySheet(ByValFileFullPath As String, ByVal SheetName As String) As DataTable
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;""data source="FileFullPath";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;""data source=")FileFullPath";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此连接可以操作.xls与.xlsx文件
Dim conn As New OleDbConnection(strConn)
conn.Open()
Dim ds As New DataSet()
Dim odda As New OleDbDataAdapter(String.Format("SELECT * FROM [{0}]", SheetName), conn)
'("select * from [Sheet1$]", conn);
odda.Fill(ds, SheetName)
conn.Close()
Return ds.Tables(0)
End Function
读取Excel文件时,可能一个文件中会有多个Sheet,因此获取Sheet的名称是非常有用的 。根据Excel物理路径获取Excel文件中所有表名的具体操作方法如下:
Public Shared Function GetExcelSheetNames(ByVal excelFile As String) As [String]()
Dim objConn As OleDbConnection = Nothing
Dim dt As System.Data.DataTable = Nothing
Try
'string strConn = "Provider=Microsoft.Jet.OleDb.4.0;""data source="excelFile";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
Dim strConn As String = ("Provider=Microsoft.Ace.OleDb.12.0;""data source=")excelFile";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'"
'此连接可以操作.xls与.xlsx文件
objConn = New OleDbConnection(strConn)
objConn.Open()
dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
If dt Is Nothing Then
Return Nothing
End If
Dim excelSheets As [String]() = New [String](dt.Rows.Count - 1) {}
Dim i As Integer = 0
For Each row As DataRow In dt.Rows
excelSheets(i) = row("TABLE_NAME").ToString()
i= 1
Next
Return excelSheets
Catch
Return Nothing
Finally
If objConn IsNot Nothing Then
objConn.Close()
objConn.Dispose()
End If
If dt IsNot Nothing Then
dt.Dispose()
End If
End Try
End Function
Vb.net 操作Excel如何选择sheet具体操作如下:
首先,须在项目里引用: 添加引用-Com-Microsoft Excel 9.0 Object Library (这是EXCEL2000)
1 打开Excel: dim myexcel as new Excel.Application() myexcel.visible=true
2 添加新的工作簿: myexcel.Workbooks.add()
3 设定第二个工作表为活动工作表: myexcel.worksheets(2).Acivate()
4 打开指定的Excel文件: myexcel.workbooks.open("c:\my.xls")
5 显示Excel窗口: myexcel.visible=true
6 更改Excel的标题栏: myexcel.caption="欢迎,欢迎!"
7 为Excel的单元格赋值: myexcel.cells(1,4).value=https://www.04ip.com/post/100 此语句使Excel当前工作表的第一行第四列,即D1单元格等于100, 也可以这样写: myexcel.Range("D1").value=https://www.04ip.com/post/100
8 设置指定列的宽度(单位:字符个数): myexcel.ActiveSheet.colums(1).columnwidth=20 设定当前工作表第1列的宽度为20
9 设置指定行的高度(单位:磅): myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米 设置第1行的高度为1CM
10 插入分页符: myexcel.Activesheet.rows(20).pagebreak=1 在第20行前插入分页符
11 删除分页符: myexcel.Activesheet.columns(20).pagebreak=0 在第20列前删除分页符
12 指定边框线的宽度: myexcel.Activesheet.range("B3:D3").borders(1).weight=3 其中borders参数指定单元格边框的位置: 1:左 2:右 3:顶 4:底 5:斜\ 6:斜/
13 指定边框线条的类型: myexcel.Activesheet.range("B1:D3").borders(2).linestyle=1 此语句将当前工作表的B1:D3单元格的右边框设置为实线 linestyle参数: 1:细实线 2:细虚线 3:点虚线 4:双细实线
14 设置页脚: myexcel.activesheet.pagesetup.centerfooter="第p页" 注意:设置页眉页脚时要保证计算机上装有打印机,否则出错!
15 设置页眉: myexcel.activesheet.pagesetup.centerfooter="第p页"
16 设置页眉到顶断距离为2cm: myexcel.Activesheet.pagesetup.Headermargin=2/0.035
17 设置页脚到底端距离为2cm: myexcel.Activesheet.pagesetup.Footermargin=2/0.035
18 设置顶边边距为2cm: myexcel.Activesheet.pagesetup.topmargin=2/0.035
19 设置底边边距为2cm: myexcel.Activesheet.pagesetup.Bottommargin=2/0.035
20 设置左边边距为2cm: myexcel.Activesheet.pagesetup.Leftmargin=2/0.035
21 设置右边边距为2cm: myexcel.Activesheet.pagesetup.Rightmargin=2/0.035
22 设置页面水平居中: myexcel.activesheet.pagesetup.CenterHorizontally=true
23 设置页面垂直居中: myexcel.activesheet.pagesetup.Centervertically=true
24 设置页面纸张大小 (1,窄行 8.5*11 ;39 ,宽行 14*11): myexcel.activesheet.pagesetup.papersize=1
25 打印单元格网格线: myexcel.activesheet.pagesetup.PrintGridlines=true
26 复制整个工作表 : myexcel.activesheet.Usedrange.Copy
27 复制指定区域 :myexcel.activesheet.range("a1:b5").Copy
28 粘贴:myexcel.worksheets("sheet2").range("A1").PasteSpecial
29 在第2行前插入一行 :myexcel.activesheet.rows(2).Insert
30 在第2列前插入一列 : myexcel.Activesheet.Columns(2).Insert
31 合并 C4:D4 单元格: myexcel.Activesheet.Range("C4:D4").Merge()
32 自动调整第2列列宽: myexcel.activesheet.Columns(2).AutoFit
【vb.netxlsx的简单介绍】33 设置字体: myexcel.Activesheet.cells(2,1).font.name="黑体"
34 设置字体大?。?myexcel.Activesheet.cells(2,1).font.size=25
35 设置字体为斜体: myexcel.Activesheet.cells(2,1).font.Italic=true
36 设置字体为粗体: myexcel.Activesheet.cells(2,1).font.Bold=true
37 清除单元格内容: myexcel.activesheet.cells(2,1).ClearContents
38 打印预览工作表: myexcel.Activesheet.PrintPreview
39 打印工作表: myexcel.Activesheet.Printout
40 工作表另存为: myexcel.ActiveWorkbook.saveas("C:\book2.xls")
41 放弃存盘: myexcel.ActiveWorkbook.saved=false
42 关闭工作簿: myexcel.Workbooks.close
43 退出 Excel:myexcel.quit
清楚了这些命令,操作excel不就变的很轻松了 。
用VS2015,创建的VB.NET应用程序,如何同时操作两个EXCEL工作簿首先定义
Public xlApp As Excel.Application
Public xlBook As Excel.Workbook Public xlSheet As Excel.Worksheet然后创建对象
xlApp = CreateObject("Excel.Application") '创建EXCEL对象
xlBook = xlApp.Workbooks.Open("文件路径") '打开已经存在vb.netxlsx的EXCEL工件簿文件
xlSheet = xlBook.Worksheets("sheet1")
关于vb.netxlsx和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 电脑墙怎么装修好看视频,房子怎么装修好看
- erp管理系统操作流程抄表,erp管理系统操作流程图
- 雪人兄弟小游戏益智,雪人兄弟小游戏益智视频
- go语言数据库封装 go语言gui库
- 电信光纤路由器怎么选择,电信光纤路由器怎么设置无线网络
- 服饰定制企业小程序,服装定制平台app
- php接收表格数据 php获取表单数据保存到mysql中
- 怎样开启游戏中心快捷桌面,游戏怎么设置桌面快捷方式
- 冒泡算法的java代码,冒泡算法的java代码