㈠ vb中怎么读取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& "\test.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 10xlsheet.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列写入2008xlsheet.SaveAsApp.Path&"\test.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:\temp\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:\temp\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***************************************
㈡ vb6.0 操作excel2007版文件
如果你的环境只有excel2003,VB中加载的excel对象也就是2003,就会有65536的限制!
㈢ 怎么在VB中读取excel的数据
dima(3,3)asintegefori=1to3forj=1to3'这步是利用a到c之间的ascii码来处理,如果是i循环1,5的话,那就会是a,b,c,d,e,内循环j管a3~a5,a(i,j)=int(xlsheet.range(chr(asc("a")+i-1))&cstr(j+2))nextj,i
㈣ 怎样用VB读取Excel文件中表格中的数据
1、VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。
2、VB读写EXCEL表:VB本身提自动化功能可以读写EXCEL表,其方法如下:
第一步:在工程中引用Microsoft Excel类型库:从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。
第二步:在通用对象的声明过程中定义EXCEL对象:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkBookDim xlSheet As Excel.Worksheet.
第三步:在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。
㈤ 如何用VB6读取EXCEL2007中的数据
好像VB60不支持2007,支持2003
㈥ 如何用VB读写EXCEL中数据
Private Sub Form_Load() Text1.Text = App.Path & "\123.xls" Text2.Text = App.Path & "\123.mdb" Text3.Text = "sheet1" Text4.Text = "sheet1" Data1.DatabaseName = App.Path & "\123.mdb"End SubPrivate Sub Command1_Click() Dim db As Database Dim sheet As String, excelpath As String, AccessPath As String, AccessTable As String AccessPath = Text2.Text '数据库路径 excelpath = Text1.Text '电子表格路经 AccessTable = Text4.Text '数据库内表格 sheet = Text3.Text '电子表格内工作表 Set db = OpenDatabase(excelpath, True, False, "Excel 5.0") '打开电子表格文件 SQL = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]") db.Execute (SQL) '将电子表格导入数据库 Data1.RecordSource = "sheet1" Data1.Refresh DBGrid1.Refresh '显示电子表格导入到数据库的数据End Sub 上面的是把EXCEL读取到数据库中,你做点修改就行了.一个Data控件.
㈦ VB 怎麼以2007方式打开2007EXCEL ,已经引用了12.0的库,还昰不行,跪求各路大神帮忙!!
我感觉是你得execl的后缀名没有更改,excel2003后缀名是*.xls,而excel 2007的后缀名是*.xlsx,我感觉你可能在 'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls") '打开已经存在的test.xls工件簿文件没有相应的改过来过来!这个是调用excel 2007的一部分:Private Sub Excel_Out_Click() Dim i, j As Integer Set xlapp = CreateObject("Excel.Application") '创建EXCEL对象 'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xlsx") '打开已经存在的test.xls工件簿文件 Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件 'xlbook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏 'xlbook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏 xlapp.Visible = True '设置EXCEL对象可见(或不可见) Set xlsheet = xlbook.Worksheets(1) '设置活动工作表''
㈧ VB读取 2007Excel 详细如下的源码
'输出到excel objExcelText.WriteLine (strTab) objExcelText.Close Set 1、用VB按行读取TXT文档的内容,判断以逗号区分,分离出(例“21:12:12,HEWpId
㈨ 在visual studio 2005中我想用vb打开excel2007
VB打开EXCEL的方法:
Dim xlBook As Excel.WorkBook
Set xlBook = App.Workbooks.Open("文件名")
这种语法同样要求excel已经存在才能操作。
Public xlApp As Excel.Application
Public xlBook As Excel.Workbook
Public xlChar As New Excel.Chart
Public xlSheet As New Excel.Worksheet
Set xlApp = New Excel.Application
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets.Add xlSheet.Cells(1, 1) = "测试" '写入内容 xlBook.SaveAs ("FILENAME") '保存文件 xlApp.Quit Set xlApp = Nothing
本方法采用add添加excel文件和datasheet,然后用save保存。如果用xlApp.Visible=False,则自动生成文件。但是如果文件已经存在,则会弹出是否覆盖的提示。因此,最好先在程序中检查文件是否已经存在,如果存在,则用普通方法打开。如果不存在,则用add添加,并保存即可。
㈩ 如何用VB读取和写入EXCEL表格
因为ADO不支持Excel的删除
所以用Excel+access的方法解决
新建access,在access里面添加2个表,一个"在职"表,一个"离职"表,(都将工号设置主键)
Excel按Ctrl+F11打开vbe编辑器,插入窗体
按以下步骤建立对应控件
最重要的一点就是将文本框的名称属性依次改成"工号", "姓名", "部门", "二级小组", "三组小组",因为代码里要用到
建立好之后 双击窗体将以下代码复制到代码窗口中
Dim Con As Object
Dim Rst As Object
Dim Sql As String
Dim FieldArr
Const ProvidSr$ = "provider=microsoft.jet.oledb.4.0;data source="
Private Sub CommandButton1_Click()
Dim FieldSr$, ValueSr$, x%
If 工号.Text = "" Then MsgBox "工号必填": Exit Sub
For x = 0 To 4
FieldSr = FieldSr & FieldArr(x) & ", "
ValueSr = ValueSr & Me.Controls(FieldArr(x)).Text & "', '"
Next
FieldSr = Left(FieldSr, Len(FieldSr) – 2)
ValueSr = Left(ValueSr, Len(ValueSr) – 3)
Sql = "Insert into 在职 (" & FieldSr & ") VALUES('" & ValueSr & ")"
Con.Execute Sql
MsgBox "操作完成"
End Sub
Private Sub CommandButton2_Click()
Dim Wsr$, TBox$
For x = 0 To 1
TBox = Me.Controls(FieldArr(x)).Text
If TBox <> "" Then Wsr = Wsr & FieldArr(x) & "='" & TBox & "' or "
Next
If Wsr = "" Then MsgBox "请输入工号或姓名": Exit Sub
Wsr = Left(Wsr, Len(Wsr) – 4)
If MsgBox("确定删除?", vbQuestion + vbYesNo) = vbYes Then
Sql = "insert into 离职 select * from 在职 where " & Wsr
Con.Execute Sql
Sql = "delete from 在职 where " & Wsr
Con.Execute Sql
MsgBox "操作完成"
End If
End Sub
Private Sub UserForm_Initialize()
Dim AccPath$
FieldArr = Array("工号", "姓名", "部门", "二级小组", "三组小组")
Set Con = CreateObject("adodb.connection")
AccPath = "d:/Database/data.MDB" ''''这里设置数据库路径
Con.Open ProvidSr & AccPath
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set Con = Nothing
End Sub
好了 运行就可以了
说的的excel中vba的方法 如果要做成vb软件的话,在vb中的步骤也是一样的
代码和上面一样的 只是控件名称有些不同