Visual Basic .NET处理Excle表格全接触
一.本文程序設計、調試和運行的環境:
(1).微軟公司視窗2000服務器版。
(2).Visual Studio .Net2003企業構建版,.Net FrameWork SDK版本號4322。
(3).Office 2000套件。
二.Visual Basic .Net處理Excel表格的基本操作及其實現方法:
在Visual Basic .Net處理Excel表格之前,首先還是要引入COM組件,具體的實現步驟可參閱本文第三節中第八步。在引入的Microsoft Excel 9.0 Object LibraryCOM組件后。下面介紹在Visual Basic .Net中處理Excel表格的典型操作的實現方法:
1. 創建Excel.exe進程,顯示Excel界面,創建Excel表格:
成功引入COM組件后,通過下列語句就可以創建Excel.exe進程了,Visual Basic .Net就是通過對此進程的處理來操作Excel表格:
Private AppExcel As Excel.Application = New Excel.Application
當執行完此語句后,通過任務管理器查看進程就發現多出Excel.exe進程,當此時Excel程序的運行界面并沒有顯示,在此語句后加入以下代碼,Excel的運行界面就顯示出來了:
AppExcel.Visible = True
Excel運行界面雖然顯示,但其中并沒有表格,下列代碼是在Excel程序中創建一個新表格:
AppExcel.Application.Workbooks.Add ( True )
2. Visual Basic .Net處理Excel表格:
上文以及說過,Visual Basic .Net處理Excel表格是通過創建的Excel.exe進程來實現的。通過任務管理器看到Excel.exe進程對應上述代碼中的AppExcel。以下代碼就是設定Excel表格的(2,3)單元的數值為Temp:
AppExcel.Cells ( 2 , 3 ) = Temp
3. 關閉Excel表格,銷毀Excel.exe進程:
當編輯完Excel表格后,通過下列語句就可以關閉Excel表格,并銷毀Excel.exe進程:
AppExcel.Application.Workbooks.Close ( )
'關閉Excel表格
AppExcel.Quit ( )
'銷毀Excel.exe進程
以上就是Visual Basic .Net一些基本的操作方法,其他處理Excel表格的方法還有許多,但都和上面的這些方法很類似,由于篇幅所限就不一一介紹了,相信再掌握上面這些方法后,掌握它們也不會很困難。下面就來介紹一個比較實用的示例,這個示例的實現過程主要是通過上面介紹的這些基本的操作方法,此示例的功能是把Sql Server數據庫中數據表的內容導入到Excel表格中。
三.Visual Basic .Net導入數據庫數據到Excel表格:
通過此示例可以方便的把Sql Server數據庫中數據表導入到Excel表格中,同樣對于其他類型的數據庫,如果也需要導入數據到Excel表格,只需要修改此示例中數據連接部分的代碼就可以了。以下是在Visual Basic .Net中導入Sql Server數據庫到Excel表格的具體的實現步驟:
1. 啟動Visual Studio .Net。
2. 選擇菜單【文件】|【新建】|【項目】后,彈出【新建項目】對話框。
3. 將【項目類型】設置為【Visual Basic項目】。
4. 將【模板】設置為【Windows應用程序】。
5. 在【名稱】文本框中輸入【Visual Basic .Net導入數據庫數據到Excel表格】。
6. 在【位置】的文本框中輸入【E:\VS.NET項目】,然后單擊【確定】按鈕,這樣在E:\VS.NET項目目錄中就產生了名稱為Visual Basic .Net中操作Word文檔的文件夾,并在里面創建了名稱為Visual Basic .Net導入數據庫數據到Excel表格的項目文件。
7. 把Visual Studio .Net的當前窗口切換到【Form1.vb(設計)】窗口,并從【工具箱】中的【Windows窗體組件】選項卡中往Form1窗體中拖入下列組件,并執行相應的操作:
五個Label組件。
五個TextBox組件。
一個Button組件,用以實現導入Sql Server數據庫到Excel表格,并在這個Button組件拖入Form1的設計窗體后,雙擊它們,則Visual Stuido .Net會在Form1.vb文件分別產生這組件的Click事件對應的處理代碼。
8. 選中【解決方案管理器】,右擊【引用】,在彈出的菜單中選中【添加引用】后,按照圖01所示,加入要引用的COM組件Microsoft Excel 9.0 Object Library:
圖01:【Visual Basic .Net導入數據庫數據到Excel表格】項目【添加引用】對話框
9. 把Visual Studio .Net的當前窗口切換到Form1.vb的代碼編輯窗口,并在Form1.vb文件首部添加下列代碼,下列代碼是導入下面使用的數據類所在的命名空間:
Imports System.Data.OleDb
10. 用下列代碼替換Form1.vb中的InitializeComponent過程對應的代碼,下列代碼作用是初始化窗體中加入的組件:
<System.Diagnostics.DebuggerStepThrough ( ) > Private Sub InitializeComponent ( )
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.Label3 = New System.Windows.Forms.Label
Me.Label4 = New System.Windows.Forms.Label
Me.Label5 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.TextBox2 = New System.Windows.Forms.TextBox
Me.TextBox3 = New System.Windows.Forms.TextBox
Me.TextBox5 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.TextBox4 = New System.Windows.Forms.TextBox
Me.SuspendLayout ( )
Me.Label1.Location = New System.Drawing.Point ( 40 , 28 )
Me.Label1.Name = Label1
Me.Label1.Size = New System.Drawing.Size ( 114 , 23 )
Me.Label1.TabIndex = 0
Me.Label1.Text = 數據庫服務器名:
Me.Label2.Location = New System.Drawing.Point ( 64 , 59 )
Me.Label2.Name = Label2
Me.Label2.TabIndex = 1
Me.Label2.Text = 數據庫名稱:
Me.Label3.Location = New System.Drawing.Point ( 64 , 90 )
Me.Label3.Name = Label3
Me.Label3.TabIndex = 2
Me.Label3.Text = 數據表名稱:
Me.Label4.Location = New System.Drawing.Point ( 88 , 121 )
Me.Label4.Name = Label4
Me.Label4.TabIndex = 3
Me.Label4.Text = 用戶名:
Me.Label5.Location = New System.Drawing.Point ( 98 , 152 )
Me.Label5.Name = Label5
Me.Label5.TabIndex = 4
Me.Label5.Text = 口令:
Me.TextBox1.Location = New System.Drawing.Point ( 160 , 26 )
Me.TextBox1.Name = TextBox1
Me.TextBox1.Size = New System.Drawing.Size ( 148 , 21 )
Me.TextBox1.TabIndex = 5
Me.TextBox1.Text =
Me.TextBox2.Location = New System.Drawing.Point ( 160 , 56 )
Me.TextBox2.Name = TextBox2
Me.TextBox2.Size = New System.Drawing.Size ( 148 , 21 )
Me.TextBox2.TabIndex = 6
Me.TextBox2.Text =
Me.TextBox3.Location = New System.Drawing.Point ( 160 , 86 )
Me.TextBox3.Name = TextBox3
Me.TextBox3.Size = New System.Drawing.Size ( 148 , 21 )
Me.TextBox3.TabIndex = 7
Me.TextBox3.Text =
Me.TextBox5.Location = New System.Drawing.Point ( 160 , 146 )
Me.TextBox5.Name = TextBox5
Me.TextBox5.PasswordChar = Microsoft.VisualBasic.ChrW ( 42 )
Me.TextBox5.Size = New System.Drawing.Size ( 148 , 21 )
Me.TextBox5.TabIndex = 9
Me.TextBox5.Text =
Me.Button1.Location = New System.Drawing.Point ( 120 , 198 )
Me.Button1.Name = Button1
Me.Button1.Size = New System.Drawing.Size ( 126 , 36 )
Me.Button1.TabIndex = 10
Me.Button1.Text = 導出Excle表格
Me.TextBox4.Location = New System.Drawing.Point ( 160 , 116 )
Me.TextBox4.Name = TextBox4
Me.TextBox4.Size = New System.Drawing.Size ( 148 , 21 )
Me.TextBox4.TabIndex = 8
Me.TextBox4.Text =
Me.AutoScaleBaseSize = New System.Drawing.Size ( 6 , 14 )
Me.ClientSize = New System.Drawing.Size ( 374 , 271 )
Me.Controls.Add ( Me.Button1 )
Me.Controls.Add ( Me.TextBox5 )
Me.Controls.Add ( Me.TextBox4 )
Me.Controls.Add ( Me.TextBox3 )
Me.Controls.Add ( Me.TextBox2 )
Me.Controls.Add ( Me.TextBox1 )
Me.Controls.Add ( Me.Label5 )
Me.Controls.Add ( Me.Label4 )
Me.Controls.Add ( Me.Label3 )
Me.Controls.Add ( Me.Label2 )
Me.Controls.Add ( Me.Label1 )
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.Name = Form1
Me.Text = Visual Basic .Net導入數據庫數據到Excel表格
Me.ResumeLayout ( False )
End Sub
至此【Visual Basic .Net導入數據庫數據到Excel表格】項目的界面設計和功能實現的準備工作就完成了,具體如圖02所示:
圖02:【Visual Basic .Net導入數據庫數據到Excel表格】項目的設計界面
11. 用下列代碼替換Form1.vb中的Button1的Click事件對應的處理代碼,下列代碼功能是根據使用者輸入的數據庫信息,建立數據連接,打開數據表,并導入到Excel表格中,如果出錯則彈出出錯信息:
Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
'創建一個 DataSet
Dim myDataSet As DataSet = New DataSet
'連接數據庫,得到數據集
Try
' 設定數據連接字符串,此字符串的意思是打開Sql server數據庫,服務器名稱為本地 ,數據庫為temp
Dim strCon As String = Provider = SQLOLEDB.1; Persist Security Info = False; User ID = & TextBox4.Text & ;PSW= & TextBox5.Text _
& ; Initial Catalog = & TextBox2.Text & ;Data Source = & TextBox1.Text
'數據連接代碼,對此修改可導入其他類型數據庫到Excle表格
Dim myConn As OleDbConnection = New OleDbConnection ( strCon )
myConn.Open ( )
Dim strCom As String = SELECT * FROM & TextBox3.Text
Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter ( strCom , myConn )
myCommand.Fill ( myDataSet , table01 )
'關閉此OleDbConnection
myConn.Close ( )
Catch ey As Exception
MessageBox.Show ( 連接錯誤! + ey.ToString ( ) , 錯誤 )
End Try
Dim table As DataTable = myDataSet.Tables ( table01 )
'創建一個空的Excel電子表格文檔
Dim AppExcel As Excel.Application = New Excel.Application
AppExcel.Application.Workbooks.Add ( True )
'讀取數據的字段名稱,并在產生的Excel表格的第一行顯示出來
Dim colIndex As Integer = 0
Dim col As DataColumn = New DataColumn
For Each col In table.Columns
colIndex = colIndex + 1
AppExcel.Cells ( 1 , colIndex ) = col.ColumnName
Next
'實現數據集到Excel表格的轉換
Dim rowIndex As Integer = 1
Dim row As DataRow
For Each row In table.Rows
rowIndex = rowIndex + 1
colIndex = 0
Dim col1 As DataColumn
For Each col1 In table.Columns
colIndex = colIndex + 1
AppExcel.Cells ( rowIndex , colIndex ) = row ( col1.ColumnName ) .ToString ( )
Next
Next
AppExcel.Visible = True
End Sub
至此在上述步驟都正確完成后,【Visual Basic .Net導入數據庫數據到Excel表格】項目的全部工作就基本完成了。此時單擊快捷鍵F5運行程序,在【數據庫服務器名】中輸入Sql Server數據庫所在的機器名稱,【數據庫名】中輸入要打開的數據庫名稱,【數據表名】中輸入要導入到Excel表格的數據表名稱,在【用戶名】和【口令】中分別輸入打開此Sql Server數據庫帳戶及口令后,單擊【導入Excel表格】按鈕,則程序會把相應的數據表導入到Excel表格中。圖03和圖04分別是【Visual Basic .Net導入數據庫數據到Excel表格】項目的運行界面和導入數據后的Excel表格:
圖03:【Visual Basic .Net導入數據庫數據到Excel表格】項目的運行界面
圖04:導入Sql Server數據庫數據后形成的Excel表格
四.總結:
本文通過一個實用的示例介紹用Visual Basic .Net處理Excel表格的各種典型操作的實現,此示例能夠完成從Sql Server數據庫導出數據表中的數據到Excel表格。COM組件是一種現成的豐富資源,當.Net FrameWork SDK無法對您解決問題有所幫助時,也許借助COM就是一條捷徑。最后希望本文能夠對您掌握在Visual Basic .Net中 COM組件的使用方法。有所幫助。 轉自:動態網制作指南 www.xue163.com
轉載于:https://www.cnblogs.com/Nina-piaoye/archive/2006/08/31/491517.html
總結
以上是生活随笔為你收集整理的Visual Basic .NET处理Excle表格全接触的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum 下载RPM包而不进行安装
- 下一篇: asp.net core结合NLog搭建