分享
 
 
 

Visual Basic .NET处理Excle表格全接触

王朝vb·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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过程对应的代码,下列代码作用是初始化窗体中加入的组件:

<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 ( ) , "错误" )

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有