Visual Basic .NET處理Excle表格全接觸

來源:互聯網
上載者:User
visual  Visual Basic .Net處理Excel表格機理和處理Word文檔一樣,也是通過互操作,引入COM組件來實現的,所以前提條件是運行本文中介紹的程式的電腦必須安裝Office 2000中的Excel軟體。如果電腦安裝的Office 2000,那麼這個COM組件就是"Microsoft Excel 9.0 Object Library"。一旦引入此COM組件,Visual Basic .Net就可以向手工編輯Excel表格一樣來處理它。下面就來介紹Visual Basic .Net處理Excel表格的各種典型操作,如建立表格、編輯表格等,以及從資料庫中向Excel表格匯入資料的實現方法。

   一.本文程式設計、調試和啟動並執行環境

  (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 Library"COM組件後。下面介紹在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過程對應的代碼,下列代碼作用是初始化表單中加入的組件:

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組件的使用方法。有所協助。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。