***************************************
在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 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&"\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-窄行8?5?11 39-寬行14?11)
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
***************************************