關(guān)于vb.netxlsx的信息

vb.net EXCEL 問題

使用了VB.NET開發(fā)一個訪問excel讀取數(shù)據(jù)并修改的小程序,有一些經(jīng)驗性的東西和大家共享,如果有誤還請大家指正。

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元濱海做網(wǎng)站,已為上家服務(wù),為濱海各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792

大致分為這樣幾個部分來說明:

1、 準(zhǔn)備部分:

準(zhǔn)備部分我們需要添加excel library的引用到工程中:我使用office2003,它的庫文件為 Microsoft excel 11.0 object library。如果使用excel2000,那么它使用的是Microsoft excel 9.0 object library。

有需要時,我們添加Imports 命名空間。

我在這個程序中只是訪問了excel的數(shù)據(jù),不需要命名空間了哈。

2、 聲明一些對象:

這些對象并不是都需要,前面三個應(yīng)該有,后面的,你需要什么對象就聲明:

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單元格的內(nèi)容。

修改的時候反過來就可以了:

excelsheet.cells(1,1).value= Strcellvalue

4、 善后:

在程序的每一個退出口操作excel對象,保存或者不保存:

Excelworkbook.save

Excelworkbook.close

Excelapp=nothing

5其它:

需要注意~上面的代碼需要一些容錯機制,比如:

If Not excelworkbook Is Nothing Then 這樣的話來達到程序的正確運行

需要判斷現(xiàn)在excel又沒有打開。如果有excel進程正在運行。你的代碼很可能會影響到打開的excel,像Excelworkbook.close這樣的語句雖然前面已經(jīng)很好的唯一指定了工作簿,但不能很武斷的進行魯莽的操作,我們需要判斷現(xiàn)在excel的運行情況。

另外,VB.NET 讀取Excel 2007的xlsx文件和讀取老的.xls文件是一樣的,都是用Oledb讀取,僅僅連接字符串不同而已。讀取xlsx 用的是Microsoft.Ace.OleDb.12.0;具體操作方法如下:

Public Shared Function GetExcelToDataTableBySheet(ByVal FileFullPath 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的名稱是非常有用的。根據(jù)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 設(shè)定第二個工作表為活動工作表: myexcel.worksheets(2).Acivate()

4 打開指定的Excel文件: myexcel.workbooks.open("c:\my.xls")

5 顯示Excel窗口: myexcel.visible=true

6 更改Excel的標(biāo)題欄: myexcel.caption="歡迎,歡迎!"

7 為Excel的單元格賦值: myexcel.cells(1,4).value=100 此語句使Excel當(dāng)前工作表的第一行第四列,即D1單元格等于100, 也可以這樣寫: myexcel.Range("D1").value=100

8 設(shè)置指定列的寬度(單位:字符個數(shù)): myexcel.ActiveSheet.colums(1).columnwidth=20 設(shè)定當(dāng)前工作表第1列的寬度為20

9 設(shè)置指定行的高度(單位:磅): myexcel.ActiveSheet.rows(1).rowHeight=1/0.035 1磅 =0.035厘米 設(shè)置第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參數(shù)指定單元格邊框的位置: 1:左 2:右 3:頂 4:底 5:斜\ 6:斜/

13 指定邊框線條的類型: myexcel.Activesheet.range("B1:D3").borders(2).linestyle=1 此語句將當(dāng)前工作表的B1:D3單元格的右邊框設(shè)置為實線 linestyle參數(shù): 1:細實線 2:細虛線 3:點虛線 4:雙細實線

14 設(shè)置頁腳: myexcel.activesheet.pagesetup.centerfooter="第p頁" 注意:設(shè)置頁眉頁腳時要保證計算機上裝有打印機,否則出錯!

15 設(shè)置頁眉: myexcel.activesheet.pagesetup.centerfooter="第p頁"

16 設(shè)置頁眉到頂斷距離為2cm: myexcel.Activesheet.pagesetup.Headermargin=2/0.035

17 設(shè)置頁腳到底端距離為2cm: myexcel.Activesheet.pagesetup.Footermargin=2/0.035

18 設(shè)置頂邊邊距為2cm: myexcel.Activesheet.pagesetup.topmargin=2/0.035

19 設(shè)置底邊邊距為2cm: myexcel.Activesheet.pagesetup.Bottommargin=2/0.035

20 設(shè)置左邊邊距為2cm: myexcel.Activesheet.pagesetup.Leftmargin=2/0.035

21 設(shè)置右邊邊距為2cm: myexcel.Activesheet.pagesetup.Rightmargin=2/0.035

22 設(shè)置頁面水平居中: myexcel.activesheet.pagesetup.CenterHorizontally=true

23 設(shè)置頁面垂直居中: myexcel.activesheet.pagesetup.Centervertically=true

24 設(shè)置頁面紙張大小 (1,窄行 8.5*11 ;39 ,寬行 14*11): myexcel.activesheet.pagesetup.papersize=1

25 打印單元格網(wǎng)格線: myexcel.activesheet.pagesetup.PrintGridlines=true

26 復(fù)制整個工作表 : myexcel.activesheet.Usedrange.Copy

27 復(fù)制指定區(qū)域 : 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 自動調(diào)整第2列列寬: myexcel.activesheet.Columns(2).AutoFit

33 設(shè)置字體: myexcel.Activesheet.cells(2,1).font.name="黑體"

34 設(shè)置字體大小: myexcel.Activesheet.cells(2,1).font.size=25

35 設(shè)置字體為斜體: myexcel.Activesheet.cells(2,1).font.Italic=true

36 設(shè)置字體為粗體: myexcel.Activesheet.cells(2,1).font.Bold=true

37 清除單元格內(nèi)容: myexcel.activesheet.cells(2,1).ClearContents

38 打印預(yù)覽工作表: myexcel.Activesheet.PrintPreview

39 打印工作表: myexcel.Activesheet.Printout

40 工作表另存為: myexcel.ActiveWorkbook.saveas("C:\book2.xls")

41 放棄存盤: myexcel.ActiveWorkbook.saved=false

42 關(guān)閉工作簿: myexcel.Workbooks.close

43 退出 Excel: myexcel.quit

清楚了這些命令,操作excel不就變的很輕松了。

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") '創(chuàng)建EXCEL對象

Set xlBook = xlApp.Workbooks.Open("文件名") '打開已經(jīng)存在的EXCEL工件簿文件

xlApp.Visible = True '設(shè)置EXCEL對象可見(或不可見)

Set xlSheet = xlBook.Worksheets("表名") '設(shè)置活動工作表

xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值

xlSheet.PrintOut '打印工作表

xlBook.Close (True) '關(guān)閉工作簿

xlApp.Quit '結(jié)束EXCEL對象

Set xlApp = Nothing '釋放xlApp對象

xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏 xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關(guān)閉宏

還有很多,這個要自己慢慢摸索

網(wǎng)頁名稱:關(guān)于vb.netxlsx的信息
網(wǎng)頁網(wǎng)址:http://m.kartarina.com/article4/hjjcie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版建站公司網(wǎng)站排名品牌網(wǎng)站制作定制開發(fā)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司
主站蜘蛛池模板: 在线A级毛片无码免费真人| 人妻无码一区二区不卡无码av| 无码人妻丝袜在线视频| 久久亚洲中文字幕无码| 成人无码AV一区二区| 久久国产亚洲精品无码| heyzo高无码国产精品| 亚洲成AV人在线观看天堂无码 | 久久人午夜亚洲精品无码区| 一区二区三区无码视频免费福利 | 一本色道久久HEZYO无码| 久久国产精品无码一区二区三区 | 成在人线av无码免费高潮喷水| 免费无码一区二区三区| 国产日产欧洲无码视频无遮挡| 亚洲AV日韩AV永久无码色欲| 国产在线无码一区二区三区视频 | 无码乱人伦一区二区亚洲一| 无码喷水一区二区浪潮AV | 久久久久久亚洲av成人无码国产| 久久人妻无码一区二区| 亚洲中文无码永久免| 人妻精品久久无码专区精东影业| 成人无码A区在线观看视频| 国产成人精品无码一区二区老年人| 无码成人精品区在线观看| 久久老子午夜精品无码怎么打| 国产成人AV无码精品| 精品无码成人网站久久久久久| 亚洲成a人片在线观看天堂无码 | 亚洲AV无码乱码在线观看| 无码人妻精品一区二区蜜桃| 无码毛片AAA在线| 亚洲AV无码一区二区乱子仑| 亚洲av永久中文无码精品| 亚洲国产精品无码久久久秋霞1 | 乱色精品无码一区二区国产盗| 亚洲精品午夜无码专区| 亚洲av中文无码乱人伦在线播放| 中文字幕无码一区二区免费| 国产成人无码精品一区在线观看|