怎么在vb2012中调用excel文件
1、调用Excel对象打开EXCEL文件后,读取文件内容
***************************************
在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“MicrosoftExcel 11.0 object library”项。由于你的Excel版本不同,所以这个选项的版本号也是不同的。
因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
第一层:Application对象,即Excel本身;
第二层:workbooks对象集,指Excel的工作簿文件
第三层:worksheets对象集,表示的是Excel的一个工作表;
第四层:Cells和Range对象,指向Excel工作表中的单元格。
新建立一个VB的工程,先放一个button,名称为Excel_Out。先定义好各层:
Dim xlapp As Excel.Application 'Excel对象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
我们打算做的是:打开/新建一个excel,在其中对某工作表的一些单元格修改其值,然后另存为test.xls文件。
Private Sub Excel_Out_Click()
Dimi, j As Integer
Setxlapp = CreateObject("Excel.Application") '创建EXCEL对象
'Set xlbook = xlapp.Workbooks.Open(App.Path& "est.xls")'打开已经存在的test.xls工件簿文件
Setxlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件
'xlbook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
'xlbook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏
xlapp.Visible = True '设置EXCEL对象可见(或不可见)
Setxlsheet = xlbook.Worksheets(1) '设置活动工作表''
''~~~当前工作簿的第一页,这里也可以换成“表名”
'下面就是简单的在一些单元格内写入数字
Fori = 7 To 15
For j = 1 To 10
xlsheet.Cells(i, j) = j '当前工作簿第一页的第I行第J列
Next j
Nexti
Withxlsheet '设置边框为是实线
.Range(.Cells(7, 1), .Cells(28, 29)).Borders.LineStyle = xlContinuous
EndWith
'引用当前工作簿的第二页
Setxlsheet = xlapp.Application.Worksheets(2)
xlsheet.Cells(7, 2) = 2008 '在第二页的第7行第2列写入2008
xlsheet.SaveAsApp.Path&"est.xls" '按指定文件名存盘
'Setxlbook = xlapp.Application.Workbooks.Add '新建一空白工作簿
xlapp.Quit '结束EXCEL对象'xlapp.Workbooks.Close
Setxlapp = Nothing '释放xlApp对象
End Sub
这样,我们就可以简单的对excel文件进行操作了。下面再放一些我从网上查到的资料吧,还挺有用的:
1.创建Excel对象
eole=CREATEOBJECT(′Excel.application′)
2.添加新工作簿
eole.Workbooks.add
3.设置第3个工作表为激活工作表
eole.Worksheets(〃sheet3〃).Activate
4.打开指定工作簿
eole.Workbooks.Open(〃c:emp\ll.xls〃)
5.显示Excel窗口
eole.visible=.t.
6.更改Excel标题栏
eole.Caption=〃VB应用程序调用Microsoft Excel〃
7.给单元格赋值
eole.cells(1,4).value=XM(XM为数据库字段名)
8.设置指定列的宽度(单位:字符个数)
eole.ActiveSheet.Columns(1).ColumnWidth=5
9.设置指定行的高度(单位:磅)
eole.ActiveSheet.Rows(1).RowHeight=1/0.035
(设定行高为1厘米,1磅=0.035厘米)
10.在第18行之前插入分页符
eole.Worksheets(〃Sheet1〃).Rows(18).PageBreak=1
11.在第4列之前删除分页符
eole.ActiveSheet.Columns(4).PageBreak=0
12.指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range(〃b3:d3〃).Borders(2).Weight=3
13.设置四个边框线条的类型
eole.ActiveSheet.Range(〃b3:d3〃).Borders(2).LineStyle=1
(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)
14.设置页眉
eole.ActiveSheet.PageSetup.CenterHeader=〃报表1〃
15.设置页脚
eole.ActiveSheet.PageSetup.CenterFooter=〃第&P页〃
16.设置页眉到顶端边距为2厘米
eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035
17.设置页脚到底边距为3厘米
eole.ActiveSheet.PageSetup.FooterMargin=3/0.035
18.设置顶边距为2厘米
eole.ActiveSheet.PageSetup.TopMargin=2/0.035
19.设置底边距为4厘米
eole.ActiveSheet.PageSetup.BottomMargin=4/0.035
20.设置左边距为2厘米
veole.ActiveSheet.PageSetup.LeftMargin=2/0.035
21.设置右边距为2厘米
eole.ActiveSheet.PageSetup.RightMargin=2/0.035
22.设置页面水平居中
eole.ActiveSheet.PageSetup.CenterHorizontally=.t.
23.设置页面垂直居中
eole.ActiveSheet.PageSetup.CenterVertically=.t.
24.设置页面纸张大小(1-窄行8511 39-宽行1411)
eole.ActiveSheet.PageSetup.PaperSize=1
25.打印单元格网线
eole.ActiveSheet.PageSetup.PrintGridlines=.t.
26.拷贝整个工作表
eole.ActiveSheet.UsedRange.Copy
27.拷贝指定区域
eole.ActiveSheet.Range(〃A1:E2〃).Copy
28.粘贴
eole.WorkSheet(〃Sheet2〃).Range(〃A1〃).PasteSpecial
29.在第2行之前插入一行
eole.ActiveSheet.Rows(2).Insert
30.在第2列之前插入一列
eole.ActiveSheet.Columns(2).Insert
31.设置字体
eole.ActiveSheet.Cells(2,1).Font.Name=〃黑体〃
32.设置字体大小
eole.ActiveSheet.Cells(1,1).Font.Size=25
33.设置字体为斜体
eole.ActiveSheet.Cells(1,1).Font.Italic=.t.
34.设置整列字体为粗体
eole.ActiveSheet.Columns(1).Font.Bold=.t.
35.清除单元格公式
eole.ActiveSheet.Cells(1,4).ClearContents
36.打印预览工作表
eole.ActiveSheet.PrintPreview
37.打印输出工作表
eole.ActiveSheet.PrintOut
38.工作表另存为
eole.ActiveWorkbook.SaveAs(〃c:emp\22.xls〃)
39.放弃存盘
eole.ActiveWorkbook.saved=.t.
40.关闭工作簿
eole.Workbooks.close
41.退出Excel
eole.quit
***************************************
2、调用ADO对象以数据库方式打开EXECL文件后,以SQL语句方式读取文件
***************************************
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" DBQ=" & App.Path & ";", "", ""
rs.Open "select * from [test$]", conn, adOpenStatic, adLockReadOnly, adCmdText
Set Read_Text_File = rs
Set rs = Nothing
Set conn = Nothing
***************************************
添加引用 Microsoft Excel 12.0 Object Library (视你的office版本不同有所差异)
然后就可以用这个来编程啦
Dim xlapp As Excel.Application ‘代表excel程序
Dim wkBook As Excel.Workbook '代表excelworkbook(也就是excel工作簿文件 .xls .xlsx)
Dim wkSheet As Excel.Worksheet '代表excel的工作页
xlapp.Application.EnableEvents = False '禁止宏等提示的运行
Set wkBook = xlapp.Workbooks.Open(ExcelFileName)'wkBook对象,把ExcelFileName替换为你的真实文件 比如 app.path & "\" & "百家姓.xls"
Set wkSheet = wkBook.Worksheets(1) '选中某个sheet用工作页名字(Sheet1,Sheet2...) or 序号
for i = 1 to wkSheet.UsedRange.Rows.Count ' wksheet.usedrange.rows.count ‘使用区域.行.数
t1.text=t1.text & wkSheet.Cells(i, 2)+vbcrlf ’ cells(行,列) 如B1单元格就是cells(1,2),注意区别
next i
这个意思就是在文件本框t1里头显示excel文件第二列的内容。
我只给你一个例子,你完全可以照着这个去改成你自己要的东西。
你要的随机输出,可以生成范围在1 到 usedrange.rows.count的整数,重复20次。(当然你要更完美,可以做重复检测,确保生成20个不同的数),具体情况具体对待,你的excel什么结构,随机数范围也会因你的excel标题,统计栏而有所不同,你如果能看明白我上面的代码,就应该很容易写出你要的东西来。
你想知道你的对象有哪些属性,方法,你可以看vb的关键词提示,很直观。
使用VB2012读取Excel文件需要先添加引用:
解决方案右键-添加引用-COM-类型库,中勾选Microsoft Excel引用项,如图:
这是Excel2010的引用项,不同的office版本可能会有差别,注意找一下。
在代码中添加引用,注意一定是在代码开始位置,(Public Class之前)
Imports Microsoft.Office.Interop
打开、写入、读取、关闭Excel文档的代码如下:
Public Class frmExcelOperate
Dim xapp As Excel.Application '定义Excel进程
Dim strFilePath As String '定义Excel文档位置
'打开Excel文档
Private Sub btnOpen_Click(sender As Object, e As EventArgs) Handles btnOpen.Click
xapp = New Excel.Application() '新建Excel进程
strFilePath = "E:\ExcelOperate.xlsx" '指定Excel文件的位置
xapp.Visible = False '设置Excel进程不可见
xapp.DisplayAlerts = False '屏蔽Excel的提示,使用程序接管
xapp.Workbooks.Open(strFilePath) '打开指定的Excel文件
End Sub
'添加数据
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
'xapp.Workbooks.Add() '添加工作簿,默认使用第一个工作表
xapp.Cells(Val(txtAddRow.Text), Val(txtAddCol.Text)) = txtAddData.Text '将数据写入指定单元格
End Sub
'读取数据
Private Sub btnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
txtReadData.Text = xapp.Cells(Val(txtReadRow.Text), Val(txtReadCol.Text)).value.ToString '从指定单元格读取数据
End Sub
'关闭Excel文档
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
xapp.Workbooks.Close() '关闭工作簿
xapp.Quit() '退出Excel进程
'遍历系统中名为excel的进程,如果是本程序创建的进程,其MainWindowTitle属性应为空值,清理所有符合条件的进程
'用户自己打开的Excel进程不受影响
For Each p As Process In Process.GetProcessesByName("excel")
If String.IsNullOrEmpty(p.MainWindowTitle) Then
p.Kill()
End If
Next
End Sub
End Class
怎么在vb2012中调用excel文件
使用VB2012读取Excel文件需要先添加引用:解决方案右键-添加引用-COM-类型库,中勾选Microsoft Excel引用项,如图:这是Excel2010的引用项,不同的office版本可能会有差别,注意找一下。在代码中添加引用,注意一定是在代码开始位置,(Public Class之前)Imports Microsoft.Office.Interop 打开、写入、读取、...
vb2012中如何让文字水平滚动
基本思路与方法:1.窗体上添加一个标签控件,一个Timer控件。2.标签用来显示文本。Timer控件用来控制并改变标签控件在窗体上位置,达到滚动效果。完整代码见下面:注意看不清楚就看下面 本代码经过测试运行通过。
VB2012中把form1隐藏,把form2显示的代码怎么写
建立窗体form1,form2 在form1窗体上放置一按钮,双击按钮写入代码:form2.show 双击form2窗体,生成form2_load事件,在该事件中写入代码form1.hide 效果:程序启动时会显示form1,单击form1的上按钮,会显示form2,此时触发form2_load事件,隐藏form1 亲测,通过 ...
vb2012 怎么设置语法检测
在【工具】菜单中,单击【选项】命令,在【选项】对话框中,单击【编辑器】选项卡,单击【自动语法检测】选项。希望我能帮助你解疑释惑。
vb2012中根据文本框中内容查找数据库中内容
select * from table1 where 字段1 like '*语文*'如果要逐字检索,需要多个条件:select * from table1 where 字段1 like '*语*' and 字段1 like '*文*'星号是通配符,代表0个或者多个字符,在不同的数据库系统里可能会有不同。SQL语句是传入数据库的命令,如果不清楚如何将命令传入数据库,...
vb2012怎么查询access数据库里的表格,并且返回查询结果
Imports System.Data.OleDb Module Module1 Public cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\ACCESS数据库.mdb") '定义连接---这里请更改为实际数据库路径及名称 Public DataBaseRST As Integer '用来返回数据库执行结果 Public Function DataModify(ByVal ...
VB2012中的ComboBox如何设置成不能编辑text属性只能从列表选择_百度知 ...
把ComboBox的Dropdownstyle属性设置成Dropdownlist就可以啦。
VB2012怎么使用Split空格分隔字符串?
首先把多个空格替换为一个空格,然后在split:a="11 22 333 4444"while instr(a," ") a = Replace(a, " ", " ")wendarr=split(a," ")
VB2012中的Round函数为什么不管用? 哪位大虾能帮忙解决呀?
方法不对,vb中round的写法和VB.NET不一样,改成 Math.Round,比如小数1.23456,要保留2位小数,你可以这样写:Dim A As Double=1.23456 Msgbox(Math.Round(A,2))
VB2012 想在form里面添加一个列表框!
'一个文本框(内容以空格分开:数目 名称 价格),一个button,一个listview。Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim item As String() = TextBox1.Text.Split(" ") If item Is Nothing OrElse item.Count = 0 Then Return If Lis...
壹贝硫酸: 使用VB2012读取Excel文件需要先添加引用:解决方案右键-添加引用-COM-类型库,中勾选Microsoft Excel引用项,如图:这是Excel2010的引用项,不同的office版本可能会有差别,注意找一下.在代码中添加引用,注意一定是在代码开始位置...
霞山区17073934355: vb中怎么读取excel文件 - ?
壹贝硫酸: 1、调用Excel对象打开EXCEL文件后,读取文件内容*************************************** 在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“MicrosoftExcel 11.0 object library”项.由于你的Excel版本...
霞山区17073934355: 如何在vb中显示excel? - ?
壹贝硫酸: 添加一个表格控件Flexgrid,然后读取excel中的内容,定时更新到表格中
霞山区17073934355: 如何用vb控制excel表格的具体操作 - ?
壹贝硫酸: 全面控制 Excel 首先创建 Excel 对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application 1) 显示当前窗口:ExcelID.Visible := True; 2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Ex...
霞山区17073934355: VB访问Excel的几种方式 - ?
壹贝硫酸: 随着信息技术的发展,特别是网络信息交流的需要,要求有快捷的信息查询技术.VB能够通过多种方式对Excel文档进行访问[1,2],以满足各种信息查询的要求.本文讨论VB对Excel访问的三种方式:1、直接调用Excel应用程序对象进行访问;...
霞山区17073934355: 如何在VB里调用excel画图,十分急,谢谢您了 - ?
壹贝硫酸: 先在工程-引用 里引用excel类 然后代码如下 Dim eapp As Excel.application Dim ebook As Excel.Workbook Dim esheet As Excel.Worksheet Private Sub Command1_Click() On Error Resume Next Set eapp = GetObject(, "excel.application")If ...
霞山区17073934355: 请问如何使用vb调用 excel 文件? - ?
壹贝硫酸: 添加引用 Microsoft Excel 12.0 Object Library (视你的office版本不同有所差异) 然后就可以用这个来编程啦 Dim xlapp As Excel.Application '代表excel程序 Dim wkBook As Excel.Workbook '代表excelworkbook(也就是excel工作簿文件 .xls .xlsx...
霞山区17073934355: 如何用vb调用excel表的数据 - ?
壹贝硫酸: Dim oExcel As New excel.Application '定义对像 需引用excel 11.0Dim o As excel.WorksheetDim Row As IntegerDim Col As Integer oExcel.Workbooks.Add'ADD是新增,如果是原来有文件,就可以用打开 Open(完整文件名)Set O= oExcel....
霞山区17073934355: vb调用excel vba的方式与方法 - ?
壹贝硫酸: 在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项.由于你的Excel版本不同,所以这个选项的版本号也是不同的.
霞山区17073934355: 如何在VB中调用EXCEL - ?
壹贝硫酸: 1.在当前目录建立一个空xls文件,a.xls2.创建bat文件: open "a.bat" for output as #1:print #1,app.path & "\a.xls":close3.shellbat文件:shell("a.bat")