pbole操作文档大全

经典语录大全  点击:   2013-07-11

pbole操作文档大全篇一

PB中使用OLEObject操作Excel

在PB中使用OLEObject操作Excel glave posted @ 2009年7月14日 06:15 in PB with tags PB OLE excel , 4671 阅读

在PB使用OLEObject操作Excel

1.申明和定义(其他变量定义省略)

OLEObject xlapp // EXCEL application object OLEObject xlwk // EXCEL workbook object

OLEObject xlsub // EXCEL worksheet object

OLEObject xlcel // EXCEL cell object

2.连接Excel文件,ls_path为Excel路径

xlapp = create OLEObject

li_ret = xlapp.ConnectToObject(ls_path)

if li_ret < 0 then MessageBox("ERR","") destroy xlapp end if

3.打开Excel的workbook

ll_cnt = xlapp.Application.Workbooks.Count //获取当前workbook的个数 xlwk = xlapp.Application.Workbooks[ll_cnt] //打开最新的一个对象,也就是上面连接后打开的excel对象(如果改文件已经打开,需特殊考虑) xlsub = xlwk.Worksheets[1]

xlapp.Application.Windows(ll_cnt).Visible = true //设置对象不可视

xlsub.Activate

4.操作Excel的sheet

//设置单元格背景颜色

xlsub.cells(1,1).Interior.Color = rgb(255,0,0)

xlsub.cells(1,1).Interior.Pattern = "1"

//设置列的filter

xlsub.Rows("1:1").AutoFilter

//获取Excel行数

ll_rowcnt_xls = xlsub.UsedRange.Rows.Count

//设置Excel列宽自动大小(随内容宽度自动变化)

xlsub.Rows("1:" + string(ll_rowcnt_xls)).Columns.AutoFit

//sheet锁定, false:解锁; true:加锁

xlsub.Cells.Locked = False

//做一个下拉列表框,当选择DEL时候背景变成红色,选择NoAction无变化 xlsub.Range(ls_range).Validation.Delete

xlsub.Range(ls_range).Validation.Add("3", "1", "1", "NoAction,DEL") xlsub.Range(ls_range).Validation.IgnoreBlank = True

xlsub.Range(ls_range).Validation.InCellDropdown = True

xlsub.Range(ls_range).Validation.InputTitle = ""

xlsub.Range(ls_range).Validation.ErrorTitle = ""

xlsub.Range(ls_range).Validation.InputMessage = ""

xlsub.Range(ls_range).Validation.ErrorMessage = ""

xlsub.Range(ls_range).Validation.IMEMode(0)

xlsub.Range(ls_range).Validation.ShowInput = True

xlsub.Range(ls_range).Validation.ShowError = True

xlsub.Range(ls_range).FormatConditions.Delete

xlsub.Range(ls_range).FormatConditions.Add("1", "3", "DEL")

xlsub.Range(ls_range).FormatConditions(1).Font.Color = rgb(255,0,0)

//设置sheet单元格格式为文本格式

xlsub.Cells.NumberFormatLocal = "@"

// 设置保护,第一个参数是密码,后面的参数比较复杂,可以自己去一个一个实验

xlsub.protect("password",true, true,true, false,false,

false,false,true,true, false,true,true,false,true,false)

//将sheet1的一列复制到sheet2中

xlwk.Sheets("sheet1").Select()

xlwk.Sheets("sheet1").Columns(ll_col_xls).Copy() // 要复制的列 xlwk.Sheets("sheet2").Select()

xlwk.Sheets("sheet2").Columns(ll_col_newsheet).Select() // 粘贴到ll_col_newsheet列前

xlwk.Sheets("sheet2").Paste()

5.关闭Excel

xlapp.Application.DisplayAlerts = False // 不提示保存等提示信息,且为不保存

xlwk.save()

xlwk.Close()

xlapp.ConnectToObject(ls_path) //从新打开一个Excel对象

ll_cnt = xlapp.Application.Workbooks.Count

xlwk = xlapp.Application.Workbooks[ll_cnt]

xlapp.Application.DisplayAlerts = True

// -------------------------------------------

// 上面关闭提示了,这里要解开关闭,否则其他woekbook关闭也没提示, //但是直接设置为true是不可以的(见下面两行代码),必须再打开一个对象,再设置为true才可以

//xlapp.Application.DisplayAlerts = False

//xlapp.Application.DisplayAlerts = True

//--------------------------------------------

xlwk.close()

xlapp.DisConnectObject()

Destroy xlsub

Destroy xlwk

Destroy xlapp

其他一些简单的操作,网上有很多很好的资料,这里只是提到一些特殊的操作,例如:下拉列表框,选择条件,设置保护等等

而这些也正是网上还不容易找到答案的.

因为在Excel录制了宏之后,把宏放到PB里还是会出现很多问题,需要查阅资料以及自己的实验才能得出正确结果,

希望对需要的人有帮助.

pbole操作文档大全篇二

pb操作文档表格源码

PB中打开了一个word文档怎么把图片插入到word文档里面去

myword.Selection.InlineShapes.AddPicture('C:\1.jpg',False,True) 加入的表格

ole_1.ActiveDocument.Tables.Add(ole_1.Selection.Range, ll_rownum, ll_colnum,wdWord9TableBehavior,wdAutoFitFixed)

dw2word,dw2xls

PB 数据窗口数据导出到word,excel, excel 可以自定义修改excel文档的列宽对齐方式,字体样式等

// dwsave2word 调用ole

global type gf_exportdata2word from function_object

end type

forward prototypes

global subroutine gf_exportdata2word (datawindow ad_datawindow) end prototypes

global subroutine gf_exportdata2word (datawindow ad_datawindow);string ls_filepath

ls_filepath=gf_getfilesavename()

OleObject OleObjectWord

OleObjectWord=Create OleObject

// 连接word

if OleObjectWord.ConnectToNewObject("Word.application") <> 0 then Messagebox("提示","ole连接错误!")

return

end if

OleObjectWord.visible=false //word文档在操作数据过程中是否可见 Long col_colnum,col_rownum

Constant Long wdTableBehavior=1

Constant Long wdAutoFitFixed=0

Constant Long wdCell=12

String str_value

// 得到数据窗口数据的列数和行数(行数应该是数据行数+1)

col_colnum=Long(ad_datawindow.object.datawindow.column.count) col_rownum=ad_datawindow.rowcount() + 1

// 先在word文档中画好表格

SetPointer(HourGlass!)

OleObjectWord.Documents.Add

OleObjectWord.ActiveDocument.Tables.Add(OleObjectWord.Selection.Range,&

+col_rownum,col_colnum,wdTableBehavior,wdAutoFitFixed)

string ls_colname

integer i,j,k,l

for i=1 to col_colnum

//得到标题头的名称

ls_colname=ad_datawindow.Describe('#'+string(i)+".name") + "_t" str_value=ad_datawindow.DEscribe(ls_colname+".text")

OleObjectWord.Selection.TypeText(str_value)

OleObjectWord.Selection.MoveRight(wdCell)

Next

ad_datawindow.setRedraw(false)

OleObjectWord.Selection.MoveLeft(wdCell)

SetPointer(HourGlass!)

for i=2 to col_rownum

for j=1 to col_colnum

ad_datawindow.Scrolltorow(i - 1)

ad_datawindow.SetColumn(j)

str_value=ad_datawindow.GetItemstring(i - 1,j)

if isnull(str_value) then

str_value=''

end if

OleObjectWord.Selection.MoveRight(wdCell)

OleObjectWord.Selection.TypeText(str_value)

next

next

ad_datawindow.setredraw(true)

Constant long wdFormatDocument=0

// 保存新建的文档

OleObjectWord.ActiveDocument.SaveAs(ls_filepath,0,false,"",true,"",false,false,false,false,false)

boolean lb_exist

lb_exist = FileExists(ls_filepath)

if lb_exist then

messagebox("提示","数据已经保存到"+ls_filepath)

end if

//断开ole连接

OleObjectWord.DisconnectObject()

destroy OleObjectWord

end subroutine

// dwsave2xls 调用ole

global type gf_dwsavetoexcel from function_object

end type

forward prototypes

global function integer gf_dwsavetoexcel (datawindow adw)

end prototypes

global function integer gf_dwsavetoexcel (datawindow adw); string xlsname, named

integer value

string col_del,first_del

value = GetFileSaveName("另存为", xlsname,named,"XLS","Xls Files (*.XLS), *.XLS")

if value = 1 then

adw.saveas(xlsname,Excel!,TRUE)

else

return 2

end if

constant integer ppLayoutBlank = 12

OLEObject ole_object

ole_object = CREATE OLEObject

integer li_ret

li_ret = ole_object.ConnectToObject("","Excel.Application")

IF li_ret <> 0 THEN

li_ret = ole_object.ConnectToNewObject("Excel.Application")

IF li_ret <> 0 THEN

messagebox("OLE错误","OLE无法连接!~r~n错误号:" + string(li_ret))

Return 0

END IF

ole_object.visible = False

END IF

pointer oldpointer

oldpointer = SetPointer(HourGlass!)

ole_object.Workbooks.open(xlsname)

ole_object.WorkSheets[1].Activate

long columncount, rowscount

{pbole操作文档大全}.

columncount = long(adw.object.datawindow.column.count) rowscount = adw.rowcount() + 1

string ls_colname[],ls_value

integer i,j

long handle

handle = OpenChannel("Excel", xlsname)

// 将列名转化为中文名称,即标题头名称

for j = 1 to columncount

ls_colname[j] = adw.describe("#"+string(j)+".name") ls_value = adw.describe(ls_colname[j]+"_t"+".text")

// ole_object.activesheet.cells[1,j].value = ls_value 开始的方法

SetRemote("R1C"+STRING(J), ls_value, handle)

next

datawindowchild ldw_child

long ll_found

For j = 1 To columncount

//col_del标识将要删除不可见的列

if adw.Describe("#" + String(j) + ".visible") ="0" then

IF integer(j)<27 then

//当列小于26时,excel中用A-Z表示列号{pbole操作文档大全}.

first_del = char(integer(J)+64)

else

//大于26,小于等于52列时,AA-AZ,大于52列时可能性不大未做考虑 first_del= "A"+char(integer(J)+38)

end if

col_del=col_del + first_del +":"+ first_del+", "

continue

end if

//当列可见且为下拉数据窗口时,数据值转化为显示值

If adw.Describe("#" + String(j) + ".edit.style") = 'dddw' Then

adw.GetChild( ls_colname[j], ldw_child )

pbole操作文档大全篇三

PB的OLE编程

PB的OLE编程技术

OLE,全称Object Linking and Embedding,即对象链接和嵌入技术,是Windows系统中允许应用程序共享数据和程序功能的一种标准的便利方法。

在PowerBuilder中,在窗口画板上,可以放置OLE控件,把Windows系统内注册的OLE对象嵌入到界面中,该控件是被嵌入的对象的容器,用户能激活该OLE对象,调出产生它的原始服务程序,可视化编辑修改。

也能用编程的方法,在内存中创建对象,连接到服务程序,调用相应功能,设置对象的各种属性。这种方法不可视地操作对象,发送命令,并不需要在窗口中放置一个OLE控制,叫做“OLE自动化”。在这种情况下,还可以设置服务程序的可视属性为“True”,让服务程序显示在用户面前。

在PowerBuilder中,OLEObject对象类型是专门用于“OLE自动化”的。OLEObject是个动态对象类型,这意味着编译器会接受这个对象的任何属性、方法和参数列表,PowerBuilder不知道你调用的属性和方法是否有效,而是把它留给服务程序自己去判断,如果确实没有,就会在运行的时候报错。

使用OLEObject对象变量编程,少不了如下四步:

1. 声明变量,创建对象

OLEObject myoleobject

myoleobject = CREATE OLEObject

2. 连接到某个具体的OLE对象

myoleobject.ConnectToObject „ 或者{pbole操作文档大全}.

myoleobject.ConnectToNewObject „

3. 利用OLE服务器的属性和方法操作该对象

myoleobject.property = „ /* 属性 */

myoleobject.function(„) /* 方法 */

4. 断开和OLE对象的连接,销毁对象,释放内存。

myoleobject.Quit()

myoleobject.DisconnectObject()

Destroy myoleobject

这种用编程的方法操作OLE对象,应用非常普遍。本文结合三个典型的应用实例,诠释具体的编程步骤。

一、操作Word文档对象

要创建一份文件名为 contact.doc 的Word文档格式的信函,其中有四个书签: a) name1 - 寄信人名字

b) name2 – 收信人称呼

c) address1 – 寄信人地址

d) body – 信的正文

该信函要有如下内容:

Multimedia Promotions, Inc.

1234 Technology Drive

Westboro, Massachusetts

May 16, 2005

[bookmark name1]

[bookmark address1]

Dear [bookmark name2]

[bookmark body]

Sincerely,

Frank Wang

程序代码如下所示:

OLEObject o1

integer result

string ls_name, ls_addr, ls_body

contact_ltr = CREATE oleObject /* 创建对象,分配内存 */

result = o1.ConnectToNewObject("Word.Application") /* 连到服务器 */ IF result <> 0 THEN /* 检测错误 */

DESTROY contact_ltr

MessageBox("OLE 错误", "不能连到Word. 出错代码: " + Sring(result)) RETURN

END IF

o1.Documents.open("c:\contact.doc") /* 打开预定义书签的文档 */

ls_name = „ /* 人名存入变量 */

o1.Selection.goto("name1") /* 定位到书签name1 */

o1.Selection.typetext(ls_name) /* 插入人名 */

o1.Selection.goto("name2") /* 定位到书签name2 */

o1.Selection.typetext(ls_name) /* 插入人名 */

ls_addr = „ /* 地址 */

o1.Selection.goto("address1") /* 定位到书签address1 */

o1.Selection.typetext(ls_addr) /* 插入地址 */

ls_body = „ /* 正文 */

o1.Selection.goto("body") /* 定位到书签body */

o1.Selection.typetext(ls_body) /* 插入正文 */

o1.Application.printout() /* 打印 */ -

o1.Documents.close /* 关闭文档 */

o1.Quit()

o1.DisconnectObject()

DESTROY

二、操作Excel文档对象

要生成某会员管理系统的会员资料卡,卡片中有多项内容规整地组合在一起,使用PB的DataWindow技术不能制作如此复杂的业务报表,因此利用Excel画出模板,然后在PB程序中往模板的各个位置填入相应内容。程序代码如下:

oleobject xlApp, xlSheet

xlApp = CREATE OLEObject

xlSheet = CREATE OLEObject

string ls_current_dir, ls_report_filename

ls_current_dir = GetCurrentDirectory()

ls_report_filename = ls_current_dir + "\report\会员资料卡.xls"

If xlApp.ConnectToObject(ls_report_filename) <> 0 Then

Messagebox("OLE 错误","不能连接到相应的 Excel表格")

Return t

End If

xlSheet = xlApp.application.workbooks(1).worksheets(1)

string ls_mem_id, ls_mem_name, ls_id_card_no, ls_sex, ls_join_date string ls_join_unit_name, ls_employ_status

ls_mem_id = „ /* 会员号 */

ls_mem_name = „ /* 会员名 */

ls_id_card_no = „ /* 身份证号码 */

ls_sex = „ /* 性别 */

ls_join_date = „ /* 入会日期 */

ls_join_unit_name = „ /* 入会单位 */

ls_employ_status = „ /* 就业状况 */

xlSheet.Range("B3").Value = ls_mem_name

xlSheet.Range("E3").Value = ls_sex

xlSheet.Range("H3").Value = "'" + ls_id_card_no

xlSheet.Range("B4").Value = "'" + ls_mem_id

xlSheet.Range("E4").Value = ls_join_date

xlSheet.Range("H4").Value = ls_join_unit_name

xlSheet.Range("H6").Value = ls_employ_status

„„

xlSheet.Range("F30").Value = "打印日期:2005年05月16日')

xlApp.application.workbooks(1).saved = true /* 退出时不会提示保存 */ xlSheet.PrintOut /* 打印 */

xlApp.application.quit() /* 退出 */

xlApp.DisconnectObject() /* 断开连接 */

destroy xlApp /* 释放对象 */

destroy xlSheet /* 释放对象 */

三、操作BusinessObjects文档对象 /

利用PB程序传递参数,自动刷新、打印BusinessObjects文档。

OLEObject boApp,boDoc 2

boApp = CREATE OLEObject

boDoc = CREATE OLEObject /* 打开的当前活动BO文档对象 */

integer li_result

li_result = boApp.ConnectToNewObject("BusinessObjects.Application.6") string lstr_err

Choose Case li_result

case -1

lstr_err = '无效的调用'

case -2

lstr_err = '系统中没有安装 BusinessObjects.Application.6 这个类' „„

end choose

if li_result <> 0 then )

MessageBox("OLE 错误","不能连接到相应的 BO 对象 ~r~n" + lstr_err) Destroy boApp

Destroy boDoc

return

end if

boApp.Interactive = False /* 刷新报表时,不显示参数对话框 */ string ls_filename /* 报表文件名称 */

string ls_fullname /* 报表文件带路径的全名 */

string ls_savedfile /* 报表文件带路径的全名 */

integer li_print_copies /* 打印份数 */

for i = 1 to dw1.RowCount() /* 选中的行 */

ls_filename = dw1.GetItemString(i,"bo_report_name")

ls_fullname = bo_dir + '\' + ls_filename + '.rep'

ls_savedfile = bo_dir + '\today\' + ls_filename + '.rep'

li_print_copies = dw1.GetItemNumber(i,"bo_print_pages")

if FileExists(ls_fullname) then

pbole操作文档大全篇四

pb调取word

//对齐方式

ole_object.Selection.ParagraphFormat.Alignment

//粗体

ole_object.Selection.Font.Bold

//字体

ole_object.Selection.Font.Name

//斜体

ole_object.Selection.Font.Italic

//下划线

ole_object.Selection.Font.Underline

//字号

ole_object.Selection.Font.Size

//前景色

ole_object.Selection.Font.Color

//建立OLEObject对象

OLEObject ole_object

ole_object=CREATE OLEObject

if ole_object.ConnectToNewObject("Word.Application")<>0 then

MessageBox('OLE错误','OLE无法连接!请确定已经安装EXCEL!')

return

END IF

//添加工作表

ole_object.Documents.Add //创建包含一定数目的空白工作表的工作簿

ole_object.visible=true

//ole_documents=ole_object.Documents(1).Activate

//插入一段文字

string s

s="我是一个学生,我在测试录制宏"

ole_object.Selection.TypeText(s)

//选择刚才插入的文字

ole_object.Selection.MoveLeft(1,len(s),1)

//把选中的文字转成14号黑体粗字

ole_object.Selection.Font.Name = "黑体"

ole_object.Selection.Font.Size = 14

ole_object.Selection.Font.Bold = True

//保存

ole_object.ActiveDocument.saveas("d:\test.doc")

//释放

Ole_Object.DisConnectObject()

Destroy Ole_Object

/*******************************************************************************

名称:gf_savetoword

描述:将数据窗口中的数据导到WORD中

参数:adw_1, 数据窗口;filename , 要导到哪个文件里面。title 标题

返回: 无

时间:2004-03-26

作者:pisa

修改:

*******************************************************************************/

constant integer ppLayoutBlank = 12

OLEObject ole_object

ole_object = CREATE OLEObject

//连接WORD

IF ole_object.ConnectToNewObject("Word.Application") <> 0 THEN

MessageBox('OLE错误','OLE无法连接!')

return

END IF

ole_object.Visible = True

long ll_colnum,ll_rownum , li_hide = 0

constant long wdWord9TableBehavior = 1

constant long wdAutoFitFixed = 0

constant long wdCell = 12

string ls_value

string ls_colname

integer i,j

//得到数据窗口数据的列数与行数(行数应该是数据行数 + 1)

ll_colnum = Long(adw_1.object.datawindow.column.count)

ll_rownum = adw_1.rowcount() + 1

for i = 1 to ll_colnum

//得到标题头的名字,并插入表格的第一行

ls_colname = adw_1.describe('#' + string(i) + ".name") + "_t"

ls_value = adw_1.describe(ls_colname + ".text")

if ls_value = '!' then

li_hide ++

continue;

end if

next

//新建新文档

ole_object.Documents.Add("C:\WINDOWS\Application

Data\Microsoft\Templates\Normal.dot",False,0)

ole_object.selection.ParagraphFormat.Alignment = 1

ole_object.Selection.TypeText( title + '~r~n')

ole_object.selection.ParagraphFormat.Alignment = 3

ole_object.Selection.TypeText( '当前打印时间' + string(today() , 'yyyy年mm月dd日') + '~r~n')

ole_object.ActiveDocument.Tables.Add(ole_object.Selection.Range, ll_rownum, ll_colnum - li_hide,wdWord9TableBehavior,wdAutoFitFixed)

for i = 1 to ll_colnum

//得到标题头的名字,并插入表格的第一行

ls_colname = adw_1.describe('#' + string(i) + ".name") + "_t"

ls_value = adw_1.describe(ls_colname + ".text")

if ls_value = '!' then

continue;

end if

ole_object.Selection.TypeText(trim(ls_value))

ole_object.Selection.MoveRight(wdCell)

next

adw_1.setredraw(false)

ole_object.Selection.MoveLeft(wdCell)

//将数据插入表格

for i = 1 to ll_rownum - 1

for j = 1 to ll_colnum

//ls_colname = adw_1.describe('#' + string(j) + ".name") + "_t"

ls_colname =adw_1.Describe("#" + string(j) +".name")

ls_value = adw_1.describe(ls_colname + "_t.text")

if ls_value = '!' then

continue;

end if

ls_value = adw_1.Describe("Evaluate('LookUpDisplay("+ls_colname+")',"+string(i)+")")

ole_object.Selection.MoveRight(wdCell)

ole_object.Selection.TypeText(ls_value)

next

next

adw_1.setredraw(true)

ole_object.selection.movedown(5)

ole_object.selection.ParagraphFormat.Alignment = 3

ole_object.Selection.TypeText( '操作人' + s_sys_user.username + '~r~n

pbole操作文档大全篇五

pb通过ole来控制excel

在开发过程中有一些复杂的报表尤其是中国式的报表,用pb的数据窗口来实现非常麻烦甚至实现不了,我们可以换一种方式通过操作excel来实现。实现的原理是先在pb脚本中检索或计算出报表中的各项数据,然后把它们一个萝卜一个坑的赋值到单元格中。pb通过ole对象来控制excel的步骤如下:

1、创建连接到excel应用的ole对象

OleObject ole_excel

ole_excel = create OleObject

If ole_excel.ConnectToNewObject("Excel.Application") <> 0 Then

MessageBox('连接到Excel错误','请确认是否已经安装了Excel!',Exclamation!) Destroy old_excel

Return

End If

2、打开指定的excle文件

ole_excel.Application.Workbooks.Open("excel文件")

3、操作excel单元格

excel单元格有一系列的操作,它们的使用格式一般如下:

ole对象.ActiveWorkBook.Sheets("工作表名").操作对象.动作或属性

读取或赋值工作表1中单元格的格式:

ole_excel.ActiveWorkBook.Sheets("工作表1").cells[1,1].value

合并工作表1中的第ll_rows_buget行的A列到I列的单元格:{pbole操作文档大全}.

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Merge,还有如下一些与合并单元格相类似的动作或属性

.HorizontalAlignment = xlGeneral //单元格的横向对齐方式

.VerticalAlignment = xlBottom //单元格的纵向对齐方式(1、2左,3居中,4右) .WrapText = True //自动换行

.Orientation = 0

AddIndent = False

ShrinkToFit = False

.MergeCells = False

设置工作表1中的第ll_rows_buget行的A列到I列的单元格四周为实现边框 ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Borders(1).LineStyle=1

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Borders(2).LineStyle=1

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Borders(3).LineStyle=1

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Borders(4).LineStyle=1

第ll_rows_buget行从A到I单元格的背景色和字体颜色设置如下:

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Interior.ColorIndex = 48 //背景色为棕黑色

ole_excel.ActiveWorkBook.Sheets("工作表

1").Range("A"+string(ll_rows_buget)+":I"+string(ll_rows_buget)).Font.ColorIndex = 3 //字体颜色为红色

有一点需要注意的是单元格的背景色和字体颜色的属性ColorIndex不能超过56,否则程序崩溃,自动退出。ColorIndex = 0 为白色,ColorIndex = 56 则接近黑色,其他颜色请自行摸索,我也不太清楚

4、保存excel文件,退出excel,并销毁ole对象

ole_excel.ActiveWorkBook.save()

ole_excel.Application.Quit()

Destroy ole_excel //注销对象

=====================================================================

最详细的使用方法请参考VBA,以下摘录常用的功能。

1.创建Excel对象

{pbole操作文档大全}.

eole=CREATEOBJECT(′Excel.application′)

2.添加新工作簿

eole.Workbooks.add{pbole操作文档大全}.

3.设置第3个工作表为激活工作表

eole.Worksheets(″sheet3″).Activate

4.打开指定工作簿

eole.Workbooks.Open(″c:templl.xls″)

5.显示Excel窗口

eole.visible = true

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 = true

23.设置页面垂直居中

eole.ActiveSheet.PageSetup.CenterVertically= true

24.设置页面纸张大小(1-窄行8 5 11 39-宽行14 11)

eole.ActiveSheet.PageSetup.PaperSize=1

25.打印单元格网线

eole.ActiveSheet.PageSetup.PrintGridlines= true

26.拷贝整个工作表

eole.ActiveSheet.UsedRange.Copy

27.拷贝指定区域

eole.ActiveSheet.Range(″A1:E2″).Copy

28.粘贴

eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial

{pbole操作文档大全}.

29.在第2行之前插入一行

相关文章
推荐内容
上一篇:qq空间设置说说,qq空间设置说说置顶
下一篇:qq空间发表说说经典语句
Copyright 学习网 版权所有 All Rights Reserved