PB操作Excel详解.docx
《PB操作Excel详解.docx》由会员分享,可在线阅读,更多相关《PB操作Excel详解.docx(18页珍藏版)》请在冰豆网上搜索。
![PB操作Excel详解.docx](https://file1.bdocx.com/fileroot1/2022-10/19/d946c52b-c763-4dd3-9b79-cea96c884028/d946c52b-c763-4dd3-9b79-cea96c8840281.gif)
PB操作Excel详解
run("notpad.exe")////pb运行记事本
run("calc.exe")////pb运行计算器
记住:
当我们用PB导出数据到EXCEL时,不管是用Saveas还是clipboard它输出的数据是定义了字段类型的列的数据,也就是说,不管列是可见还是不可见,只要该列定义了列属性,在查询时主缓冲区中该列有数据,则就会导出出来~
用方法得到列名或其他属性也是一样的~及时隐藏了也可以得到
当中间的某列给隐藏时,下次打开后它会显示在末尾的位置,但是用Saveas输出数据时,不管它是否隐藏,是否改变了位置,它仍可输出数据而且位置还是不变的~
也就是说没有改变数据窗口对象的源,数据窗口对象上显示的列位置只会影响我们在程序界面上看到的位置,而不会影响它在后台存储的实际位置。
但是这样会改变界面显示的位置,记住,没有改变源
如何用PB程序在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应用程序调用MicrosoftExcel″
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-窄行851139-宽行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
先把标题放到剪贴板上,再PASTE()到EXCEL中,代码如下:
:
:
clipboard(ls_value)
ao_object.range(ls_col+string
(1)+":
"+ls_col+string
(1)).select()
ao_object.activesheet.Paste()
/*************************************************************
下面的函数f_excel_hb,可以实现“将工作簿filename_s中的工作表sheetname_s以新的工作表名称sheetname_t,复制到工作簿filename_t的最后”
1.public function boolean f_excel_hb (string filename_s, string filename_t, string sheetname_s, string sheetname_t);
2.//==========================================================
3.// 合并两个工作簿中的某个工作表
4.//==========================================================
5.// 作者:
yyoinge 2011-10-12 18:
00
6.//==========================================================
7.// 将工作簿filename_s中的工作表sheetname_s以新的
8.// 工作表名称sheetname_t,复制到工作簿filename_t的最后
9.//==========================================================
10.if not fileexists(filename_s) then
11. messagebox('','工作簿【' + filename_s + '】(源)不存在')
12. return false
13.end if
14.if not fileexists(filename_t) then
15. messagebox('','工作簿【' + filename_t + '】(目标)不存在')
16. return false
17.end if
18.long ll_val
19.//声明ole对象
20.oleobject ole_object_s
21.//创建ole对象
22.ole_object_s=create oleobject
23.//连接到excel
24.ll_val = ole_object_s.connecttonewobject("excel.application")
25.if ll_val <> 0 then
26. messagebox('','ole无法连接Excel!
')
27. goto error
28.end if
29.//打开源和目标工作簿
30.ole_object_s.workbooks.open(filename_s)
31.ole_object_s.workbooks.open(filename_t)
32.string ls_t
33.ls_t = filename_t
34.filename_s = of_splitpath(filename_s, 2)
35.filename_t = of_splitpath(filename_t, 2)
36.//隐藏excel
37.ole_object_s.visible = false
38.ole_object_s.displayalerts = false
39.int n,t
40.int li
41.boolean isexists=false
42.oleobject lworksheet
43.//判断源工作簿中的工作表是否存在
44.t