Visual Basic .NET处理Excel表格全接触
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 ( ) , "错误" ) 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组件的使用方法。有所帮助。
Visual Basic .NET处理Excel表格全接触相关推荐
- Visual Basic .NET处理Excle表格全接触
Visual Basic .Net处理Excel表格机理和处理Word文档一样,也是通过互操作,引入COM组件来实现的,所以前提条件是运行本文中介绍的程序的计算机必须安装Office 2000中的Ex ...
- 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(二)
--将EXCEL VBA代码移植到VB.NET .NET是微软公司在2002年推出的全新编程框架,支持多种语言应用程序开发.使用Visual Basic在Microsoft .NET Framewor ...
- 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(一)
vb.net教程https://www.xin3721.com/eschool/vbnetxin3721/ 为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进 ...
- 用VB.NET(Visual Basic 2010)封装EXCEL VBA为DLL_COM组件(一)
为了保护自己辛辛苦苦编写的Excel VBA代码不被盗用,我们需要对Excel VBA代码进行加密.通常的做法是利用给工程设置密码的方法实现加密,对于这类加密方法,由于存在安全度低.易破解等问题,因此 ...
- Visual C# 编程操作Excel
Excel是微软公司办公自动化套件中的一个软件,他主要是用来处理电子表格.Excel以其功能强大,界面友好等受到了许多用户的欢迎.在设计应用系统时,对于不同的用户,他们对于打印的需求是不一样的,如果要 ...
- 如何用电脑制作Excel表格
电脑制作excel表格全步骤 1.首先新建一个excel表格,然后我们选中需要行和列,如6列10行; 2.选中后,鼠标右键点击,然后选择"设置单元格格式"; 3.在弹出的页面中,我 ...
- Excel使用Visual Basic Editor对宏进行修改
Excel中的宏是一个很强大的工具,当我们面向任务使用Excel时,针对某些需求,比如老板的.客户的或者其他的需求,要用Excel这个表格工具,完成制作图表,输入加工信息等工作. 而我们的操作,使用宏 ...
- visual basic对文件夹下的excel执行批量删除行操作
如图操作,在excel中添加 visual basic 工具 新建一个excel 在开发工具 那里选择 插入 按钮操作 附上一下代码 Sub hz() Dim i As Long Dim f, ff ...
- 计算机数据表格方框,excel表格数据变框框了-Excel表格弄着弄着突然变成这样了,内容方框全无,有......
点击excel表格右下角出现方框框,怎么去除?谢谢啦 1.电脑打开Excel,表格有原始的灰色框 2击界面左上角的. 3.点击文件后,点击选项. 4.进入Excel选项,进入高级页面,然后把显示网格线 ...
最新文章
- C 语言 和 C++语言的对比学习 二 数据类型
- css样式重置,不建议用通配符
- 《Adobe Illustrator CC经典教程》—第0课0.1节简介
- php跳转传值,php如何跳转页面并传值?
- UI组件之AdapterView及其子类(五)ListView组件和ListActivity
- brew 无法安装iterm2_Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)
- 数值计算方法(六)——迭代法求解线性方程组
- web漏洞扫描工具_如何使用Arachni扫描web漏洞
- 遍历 in java_[Java教程]JavaScript中遍历数组 最好不要使用 for in 遍历
- 计算机六年级基础知识,六年级计算机试题
- iOS 使用UIView的一种有效方法
- 程序分析技术栈-测试/辅助证明/模型检验/保守静态分析/bug-finding
- 《520婚恋报告》 20%的人婚后都无比后悔
- 阿尔法策略和贝塔策略
- 大数据内涵-“岂止于大”
- 盛水容器问题php代码,盛水容器的形状如图2-13所示,已知各水面高程为▽1=1.15m,▽2=0.68m,▽3=0.44m...
- win10更新后任务栏卡死 的原因和解决办法
- Quectel EC200N-CN驱动移植记录
- 《乐高EV3机器人搭建与编程》——1.4 特殊的部件
- 旧版Chrome浏览器的安装和使用——chrome63
热门文章
- android玩游戏怎么换绑,QQ炫舞手游该帐号已在安卓平台使用 请切换至安卓平台登录该账号或更换大区...
- 调查报告解读之国外数据库篇:MySQL国内使用率第一,多少企业有意替换国外产品?
- autorecover mac的ppt_恢复Mac上ppt文件:macppt没保存怎么恢复?
- 怎样使用更新域计算机,Windows Server 2019 组策略调整域计算机组策略刷新间隔时间...
- 赠英语学习者的十句经典名言
- 运维面试必问的负载均衡高频面试题(2021年最新版)
- 看hp 服务器cpu型号怎么看,惠普电脑怎么查看型号的
- VC在Windows下让指定程序兼容高分屏(HDPI)模式(转)
- 个人制作UE4 ARPG项目分享
- 地球上的模型,避免破面现象,需要加参考点