用VB操作Excel的办法
[日期:2008-11-23]
来源:
作者:
[字体:大 中
小] Private Sub Command3_Click()
On Error GoTo err1
Dim i As Long
Dim j As Long
Dim objExl As Excel.Application \'声明对象变量
Me.MousePointer = 11
\'改变鼠标样式
Set objExl = New Excel.Application
\'初始化对象变量
objExl.SheetsInNewWorkbook = 1 \'将新建的工作薄数量设为1
objExl.Workbooks.Add
\'增加一个工作薄
objExl.Sheets(objExl.Sheets.Count).Name = \"book1\" \'修改工作薄名称
objExl.Sheets.Add , objExl.Sheets(\"book1\") \'增加第二个工作薄在第一个之后
objExl.Sheets(objExl.Sheets.Count).Name = \"book2\"
objExl.Sheets.Add , objExl.Sheets(\"book2\") \'增加第三个工作薄在第二个之后
objExl.Sheets(objExl.Sheets.Count).Name = \"book3\"
objExl.Sheets(\"book1\").Select
\'选中工作薄
For i = 1 To 50
\'循环写入数据
For j = 1 To 5
If i = 1 Then
objExl.Selection.NumberFormatLocal = \"@\" \'设置格式为文本
objExl.Cells(i, j) = \" E \" & i & j
Else
objExl.Cells(i, j) = i & j
End If
Next
Next
objExl.Rows(\"1:1\").Select
\'选中第一行
objExl.Selection.Font.Bold = True \'设为粗体
objExl.Selection.Font.Size = 24
\'设置字体大小
objExl.Cells.EntireColumn.AutoFit \'自动调整列宽
objExl.ActiveWindow.SplitRow = 1 \'拆分第一行
objExl.ActiveWindow.SplitColumn = 0 \'拆分列
objExl.ActiveWindow.FreezePanes = True \'固定拆分
objExl.ActiveSheet.PageSetup.PrintTitleRows = \"$1:$1\" \'设置打印固定行
objExl.ActiveSheet.PageSetup.PrintTitleColumns = \"\"
\'打印标题
objExl.ActiveSheet.PageSetup.RightFooter = \"打印时间: \" & _
Format(Now, \"yyyy年mm月dd日 hh:MM:\")
objExl.ActiveWindow.View = xlPageBreakPreview
\'设置显示方式
objExl.ActiveWindow.Zoom = 100
\'设置显示大小
\'给工作表加密码
objExl.ActiveSheet.Protect \"123\", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
objExl.Application.IgnoreRemoteRequests = False
objExl.Visible = True
\'使EXCEL可见
objExl.Application.WindowState = xlMaximized
\'EXCEL的显示方式为最大化
objExl.ActiveWindow.WindowState = xlMaximized
\'工作薄显示方式为最大化
objExl.SheetsInNewWorkbook = 3
\'将默认新工作薄数量改回3个
Set objExl = Nothing
\'清除对象
Me.MousePointer = 0 \'修改鼠标
Exit Sub
err1:
objExl.SheetsInNewWorkbook = 3
objExl.DisplayAlerts = False \'关闭时不提示保存
objExl.Quit
\'关闭EXCEL
objExl.DisplayAlerts = True \'关闭时提示保存
Set objExl = Nothing
Me.MousePointer = 0 End Sub
=====================================
全面控制 Excel
首先创建 Excel 对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application
1) 显示当前窗口:ExcelID.Visible := True;
2) 更改 Excel 标题栏:ExcelID.Caption := \'应用程序调用 Microsoft Excel\';
3) 添加新工作簿:ExcelID.WorkBooks.Add;
4) 打开已存在的工作簿:ExcelID.WorkBooks.Open( \'C:\\Excel\\Demo.xls\' );
5) 设置第2个工作表为活动工作表:ExcelID.WorkSheets[2].Activate; 或 ExcelID.WorkSheets[ \'Sheet2\' ].Activate;
6) 给单元格赋值:ExcelID.Cells[1,4].Value := \'第一行第四列\';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
10) 在第8列之前删除分页符:
ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelID.ActiveSheet.Range[ \'B3:D4\' ].Borders[2].Weight := 3;
1-左
2-右
3-顶
4-底
5-斜( \\ )
6-斜( / )
12) 清除第一行第四列单元格公式:ExcelID.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelID.ActiveSheet.Rows[1].Font.Name := \'隶书\'; ExcelID.ActiveSheet.Rows[1].Font.Color := clBlue; ExcelID.ActiveSheet.Rows[1].Font.Bold := True; ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
a.页眉:ExcelID.ActiveSheet.PageSetup.CenterHeader := \'报表演示\'; b.页脚:ExcelID.ActiveSheet.PageSetup.CenterFooter := \'第&P页\'; c.页眉到顶端边距2cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035; d.页脚到底端边距3cm:ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035; e.顶边距2cm:ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035; f.底边距2cm:ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035; g.左边距2cm:ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035; h.右边距2cm:ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035; i.页面水平居中:ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035; j.页面垂直居中:ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035; k.打印单元格网线:ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
a.拷贝整个工作表:ExcelID.ActiveSheet.Used.Range.Copy; b.拷贝指定区域:ExcelID.ActiveSheet.Range[ \'A1:E2\' ].Copy; c.从A1位置开始粘贴:ExcelID.ActiveSheet.Range.[ \'A1\' ].PasteSpecial; d.从文件尾部开始粘贴:ExcelID.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
a.ExcelID.ActiveSheet.Rows[2].Insert;
b.ExcelID.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
a.ExcelID.ActiveSheet.Rows[2].Delete;
b.ExcelID.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
ExcelID.ActiveSheet.PrintPreview;
19) 打印输出工作表:
ExcelID.ActiveSheet.PrintOut;
20) 工作表保存:
If not ExcelID.ActiveWorkBook.Saved then
ExcelID.ActiveSheet.PrintPreview
End if
21) 工作表另存为:
ExcelID.SaveAs( \'C:\\Excel\\Demo1.xls\' ); 22) 放弃存盘:
ExcelID.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
ExcelID.WorkBooks.Close;
24) 退出 Excel:ExcelID.Quit;
25) 设置工作表密码: ExcelID.ActiveSheet.Protect \"123\", DrawingObjects:=True, Contents:=True, Scenarios:=True
26) EXCEL的显示方式为最大化
ExcelID.Application.WindowState = xlMaximized
27) 工作薄显示方式为最大化
ExcelID.ActiveWindow.WindowState = xlMaximized
28) 设置打开默认工作薄数量
ExcelID.SheetsInNewWorkbook = 3
29) \'关闭时是否提示保存(true 保存;false 不保存) ExcelID.DisplayAlerts = False
30) 设置拆分窗口,及固定行位置 ExcelID.ActiveWindow.SplitRow = 1 ExcelID.ActiveWindow.FreezePanes = True
31) 设置打印时固定打印内容
ExcelID.ActiveSheet.PageSetup.PrintTitleRows = \"$1:$1\"
32) 设置打印标题
ExcelID.ActiveSheet.PageSetup.PrintTitleColumns = \"\"
33) 设置显示方式(分页方式显示) ExcelID.ActiveWindow.View = xlPageBreakPreview
34) 设置显示比例
ExcelID.ActiveWindow.Zoom = 100
35) 让Excel 响应 DDE 请求
Ex.Application.IgnoreRemoteRequests = False
Vb操作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=″VFP应用程序调用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