文档库 最新最全的文档下载
当前位置:文档库 › PB全面控制Excel

PB全面控制Excel

PB全面控制Excel
PB全面控制Excel

PB下全面控制Excel

ExcelServer.ActiveWorkBook.Sheets("账单明细").Select

//ExcelServer.application.workbooks(1).worksheets(1) //设置第一个工作表为激活工作表ExcelServer.application.visible = true

ls_name = https://www.wendangku.net/doc/f7191123.html,

long ll_at1,ll_at7,ll_rtn,ll_excelok,ll_rowcount,ll_row,i

string ls_at2,ls_at3,ls_at4,ls_at5,ls_at9,ls_at10

string ls_pathname,ls_filename

date ld_at6,ld_at8

oleobject ExcelServer

pointer oldpointer

oldpointer = setpointer(hourglass!)

ExcelServer = create Oleobject

ll_excelok = ExcelServer.connecttonewobject("Excel.application")

if ll_excelok <> 0 then

messagebox("提示!","无法连接EXCEL,请确认本机是否安装了EXCEL")

end if

ll_rtn = getfileopenname('打开EXCEL文件',ls_pathname,ls_filename,'XLS','EXCEL文件(*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm')

if ls_filename = '' then return

ExcelServer.workbooks.open(ls_pathname,0,0)

ExcelServer.application.visible = false

//excelserver.workbooks.add()

//ExcelServer.application.workbooks(1).worksheets(1) //设置第一个工作表为激活工作表//ExcelServer.application.visible = true //显示EXCEL窗口

//ExcelServer.Caption='pb转excel' //更改标题

ll_rowcount = https://www.wendangku.net/doc/f7191123.html,edRange.rows.count

for i = 2 to ll_rowcount

ll_at1 = long(excelserver.activesheet.cells(i + 1,1).value)

if isnull(ll_at1) then continue

ll_row = dw_1.insertrow(0)

dw_1.setitem(ll_row,'at1',ll_at1);

ls_at2 = string(excelserver.activesheet.cells(i + 1,2).value)

dw_1.setitem(ll_row,'at2',ls_at2);

ls_at3 = string(excelserver.activesheet.cells(i + 1,3).value)

dw_1.setitem(ll_row,'at3',ls_at3);

ls_at4 = string(excelserver.activesheet.cells(i + 1,4).value)

dw_1.setitem(ll_row,'at4',ls_at4);

ls_at5 = string(excelserver.activesheet.cells(i + 1,5).value)

dw_1.setitem(ll_row,'at5',ls_at5);

ld_at6 = date(string(excelserver.activesheet.cells(i + 1,6).value,'yyyy/mm/dd'))

dw_1.setitem(ll_row,'at6',ld_at6);

ll_at7 = long(excelserver.activesheet.cells(i + 1,7).value)

dw_1.setitem(ll_row,'at7',ll_at7);

ld_at8 = date(string(excelserver.activesheet.cells(i + 1,8).value,'yyyy/mm/dd'))

dw_1.setitem(ll_row,'at8',ld_at8);

// ls_at9 = string(excelserver.activesheet.cells(i + 1,9).value)

// dw_1.setitem(ll_row,'at9',ls_at9);

// ls_at10 = string(excelserver.activesheet.cells(i + 1,10).value,'yyyy/mm/dd')

// dw_1.setitem(ll_row,'at10',ls_at10);

//li_emp_age = integer(ls_age)

//ld_emp_birthday = date(ls_birthday)

st_1.text = "正在导入第: " + string(i) + "笔数据"

//insert into A1_TMP values(:ls_no,:ls_name,:ls_sex,:li_emp_age,:ld_emp_birthday); next

ExcelServer.quit //exit

SetPointer(oldpointer)

ExcelServer.DisconnectObject()

DESTROY ExcelServer

//dw_1.update()

//delete from A1_TMP;

//if dw_1.rowcount() = 0 then

// rollback;

// messagebox("提示","导入失败")

// st_1.text ="导入失败!"

//else

// commit;

// messagebox("提示","导入成功")

// st_1.text ="导入成功!"

//end if

红色部分未验证

vfp直接读取EXCEL文件示例

vfp直接读取EXCEL文件示例 vfp直接读取EXCEL文件的示例(转)。 M_File=GETFILE('xls','订单文件') IF M_File="" =MESSAGEBOX("请选择待导入的收订单文件!",0+48,"提示") RETURN ELSE IF JUSTEXT(M_FILE)#"XLS" &&获得文件扩展名 =MESSAGEBOX("您选择的不是EXCEL文档!",0+48,"提示") RETURN ENDIF ENDIF USE 图书订单表 ZAP myexcel=createobject('excel.application') &&创建一个对象 myexcel.visible=.f.&&不可见 bookexcel=myexcel.workbooks.open(M_File) &&打开指定文件 o_SheetName=https://www.wendangku.net/doc/f7191123.html,&&获取当前激活工作表的名称UsedRange =bookexcel.worksheets(o_SheetName).UsedRange&&返回工作表中可使用的区域,UsedRange表的属性 o_rows=UsedRange.rows.count&&汇总行 o_cols=UsedRange.columns.count&&汇总列 IF o_rows<=1 =MESSAGEBOX("待导入数据行数太少,请检查!",0+16,"提示") ELSE FOR i=2 TO o_rows m1=myexcel.cells(i,1).value &&书号 m2=myexcel.cells(i,2).value &&书名 m3=myexcel.cells(i,3).value &&出版社 m4=myexcel.cells(i,4).value &&作者 m5=myexcel.cells(i,5).value &&定价 m6=myexcel.cells(i,6).value &&数量 APPEND BLANK REPLACE 书号WITH m1,书名WITH m2,出版社WITH m3,作者WITH m4,定价WITH m5,数量WITH m6 ENDFOR ENDIF myexcel.workbooks.close&&关闭工作区 myexcel.quit&&关闭excel brow

PB操作Excel文件

PB调用EXCEL的操作不失为一种好的报表输出方式 2009-05-15 23:17 928人阅读评论(0) 收藏举报对于较为中国化的报表,虽然后dw这个坚强后盾,但是也难不住繁复疲劳的应对。 不过我们可以知道,数据的输出,都是居于table的栏位或者计算字段。只是很多统计的模式和展现模式不同。 我在一年前作完一个系统,可是客户几乎隔三差五有新的东东要输出报表。终于我发现。让客户先在excel里弄好,然后再写程序来输出也是一个不错的方法。关键是,客户给的东西不必要再进自己的系统,所以数据不会发生什么问题。如果本身软件有任何问题,那能从excel里的写的结果很容易看得出来。虽然写excel表格要花很多时间,但是减少了输入导入和输出的一些麻烦。 转载excel操作大全: powerbuilder操作excel命令大全(例子的有些地方不对!) 2006-12-04 16:43 1.创建Excel对象 eole=CREATEOBJEC T(′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为数据库字段名)

在VFP中直接来控制Excel

Example: SET DEFAULT TO c:\ clear oleapp=createobject("excel.application") oleapp.visible=.t. && 显示Excel oleapp.workbooks.add **设单元格的值(报表标题): oleapp.cells(1,1).value="aaa" oleapp.cells(1,2).value="bbb" oleapp.cells(1,3).value="ccc" oleapp.cells(1,4).value="ddd" oleapp.cells(1,5).value="eee" **打开表并取得记录数 USE c:\bank\data\zyb.dbf SHARED jl=reccount()-1 &&记录数 **将表中的记录数据放到Excel工作簿的单元格中 for i=0 to jl go i+1 &&第i+1条记录 oleapp.cells(2+i,1).value=zyb.bh oleapp.cells(2+i,2).value=zyb.xm oleapp.cells(2+i,3).value=zyb.kl oleapp.cells(2+i,4).value=1+1 endfor oleapp.activeworkbook.saveas("C:\Documents and Settings\Administrator\桌面\KL.xls") * oleapp.activeworkbook.saveas(?) ********************************************************* 利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍: 1.创建Excel对象 eole=CREATEOBJECT(′Excel.application′) 2.添加新工作簿 eole.Workbooks.add 3.设置第3个工作表为激活工作表 eole.Worksheets(″sheet3″).Activate 4.打开指定工作簿 eole.Workbooks.Open(″c:\temp\ll.x ls″) 5.显示Excel窗口 eole.visible=.t. 6.更改Excel标题栏 eole.Caption=″VFP应用程序调用Microsoft Excel″ 7.给单元格赋值 eole.cells(1,4).value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数)

excel学习笔记

By8305樊斌老师 ERP(标准化业务) Excel(非标准化业务):个性化事情流程标准化 基于会计解决问题的角度,工作能力。 数据是C公司上半年销售情况统计,本案例要求综合运用所学知识分别从产品销售情况和员工销售业绩两个维度对销售数据进行整理和评估分析。 1、销售数据整理与分析 (1)利用超级透视表的合并查询功能(或者是用pp中建模后再关联)进行关联,填充销售明细表 (2)制作透视表分析销售数据 2、销售业绩数据整理与分析 (1)对员工销售业绩汇总和排名 (2)利用countifs和排名函数填写按月统计表 (3)利用透视表对部门销售情况进行分析 (4)利用透视表特殊功能发奖金(备注:计算字段和计算项、色阶、以中间人为标杆、切片器、表格和透视表动态联动) (5)查询销售人员的情况(有效性设置与建模辅助工具的运用) 3、财务分析工具的运用 (1)运用模拟预测表进行销售预测分析 (2)运用规划求解销售数量 创新点: (1)将公司的销售数据从人力和物力(即产品)两个角度充分挖掘数据信息。 (2)穿插超级透视表,灵活运用函数功能 (3)加入各种细小的高级功能,比如查询系统、按钮、有效性设置等 (4)实现财务分析工具的综合运用,有一定难度 第二节课 电子报表产品 地址:两个案例。 2、折旧法: 直线法=SLN(原值,残值,使用期限) 年数总和法=SYD(原值,残值,使用期限,第几期) 双倍余额递减法=VDB(原值,残值,使用期限,起始期,截止期,折旧因子,转直开关0) 3、复利终值系数表 三维地址高效编汇总表:shift 四维地址:跨表 第三节课(透视表) 对数据清单进行多维统计分析 财务会计向管理会计(非财务)转型:财务指标是滞后的。项目决策的话语权。 数据、工具运用、idea

VFP全面控制EXCEL(完全版)

1.创建Excel对象 oExcel=Createobject("Excel.application") 2.添加新工作簿 oExcel.Workbooks.Add 3.设置第3个工作表为激活工作表 oExcel.Worksheets("sheet3").Activate 4.打开指定工作簿 oExcel.Workbooks.Open("c:\temp\ll.xls") 5.显示Excel窗口 oExcel.Visible=.T. 6.更改Excel标题栏 oExcel.Caption="VFP应用程序调用Microsoft Excel" 7.给单元格赋值 oExcel.cells(1,4).Value=XM(XM为数据库字段名) 8.设置指定列的宽度(单位:字符个数) oExcel.ActiveSheet.Columns(1).ColumnWidth=5 9.设置指定行的高度(单位:磅) oExcel.ActiveSheet.Rows(1).RowHeight=1&&(设定行高为1磅,1磅=0.035厘米) oExcel.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度 10.在第18行之前插入分页符 oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 11.在第4列之前删除分页符 oExcel.ActiveSheet.Columns(4).PageBreak=0 12.指定边框线宽度(Borders参数如下) ole.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3 13.设置四个边框线条的类型 oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1 (其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线) 14.设置页眉 oExcel.ActiveSheet.PageSetup.CenterHeader="报表1" 15.设置页眉(字体大小) oExcel.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小 16.设置页脚 oExcel.ActiveSheet.PageSetup.CenterFooter="第&P页" 17.设置页脚(字体大小) oExcel.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小 18.设置页眉到顶端边距为2厘米 oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035 19.设置页脚到底边距为3厘米 oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035

pb与excel之间导入导出处理

pb与excel之间导入导出处理 gf_save_excel_to_txt(as_excel_filename string,as_text_filename string) //把文件名为as_excel_filename的Excel文件另存为文件名为as_text_filename 的Text文件 //返回:另存是否成功 //删除Text文件 If DeleteFile(as_text_filename) Then //删除存在的Text文件成功 OLEObject l_ole l_ole = Create OLEObject; If l_ole.ConnectToNewObject("Excel.Application") = 0 Then //连接到Excel l_ole.Application.DisplayAlerts = False //关闭警告消息对话框,防止退出Excel时提示 l_ole.Application.Workbooks.Open(as_excel_filename) //打开Excel文件 l_ole.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158) //把打开的Excel文件另存为 Text文件,第二参数表示数据以制表符TAB分隔 l_ole.Application.Quit() //退出Excel Else Messagebox(\'错误\',\'无法建立与Excel的连接!\',StopSign!) Destroy l_ole Return False End If Destroy l_ole Return True Else //无法删除Text文件 Return False End If 保存excel文件: 要想选择目录可以这样 string ls_docname, ls_named //文件路径,文件名 integer li_rt li_rt = GetFileSaveName("选择保存路径并输入保存文件名" + string(jj), ls_docname, ls_named, & "Excel", & "Excel Files (*.XLS),*.XLS," + &

在VFP中直接来控制Excel

在VFP中直接来控制Excel (转载) *!*VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍: oExcel=Createobject("Excel.application") &&创建Excel对象 **对象属性 oExcel.Visible=.T. &&显示Excel窗口 oExcel.Caption="VFP应用程序调用Microsoft Excel" &&更改Excel标题栏 oExcel.DisplayAlerts = .F. &&关闭提示和警告消息,运行结束后,应将本属性设置回 True 值 oExcel.cells(1,4).Value=XM(XM为数据库字段名) &&给单元格赋值 **Workbooks属性 oExcel.Workbooks.Add &&添加新工作簿 oExcel.Workbooks.Open("c:\temp\ll.xls") &&打开指定工作簿 oExcel.Workbooks.Close &&关闭工作簿 oExcel.Quit &&退出Excel Release oExcel &&只有释放对象变量, EXCEL进程才会完全关闭 **Worksheets属性 oExcel.Worksheets("sheet3").Activate &&设置第3个工作表为激活工作表 oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 &&在第18行之前插入分页符 oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial &&粘贴 **ActiveWorkbook属性

PB对excel的操作

Pb中对Excel文件的应用 Oleobject ole_object//建立OLE对象 ole_object=create oleobject//创建对象 integer li_ret li_ret=ole_object.connecttoobject( " ", "Excel.Application ")//建立连接 if li_ret <> 0 then //如果Excel还没有打开,则新建。 li_ret=ole_object.ConnectToNewObject( "Excel.Application ") if li_ret <> 0then messagebox( "OLE错误", "OLE无法连接!错误号:"+string(li_ret)) return end if ole_object.Visible=true end if pointer oldpointer//设置鼠标 oldpointer=setpointer(HourGlass!) ole_object.Workbooks.Add//新建工作薄 ole_object.Application.DisplayAlerts=False//关闭警告消息对话框,防止提示 ole_object.Application.Workbooks.Open(as_exccccccccccccccccccccccccccccccccccel_filename)/ /打开Excel文件 //ole_object.Application.ActiveWorkbook.SaveAs(as_text_filename,-4158)//把打开的Excel文件另存为 //Text文件,第二参数表示数据以制表符TAB分隔 ole_object.Application.Quit()//退出Excel ole_object.activeworkbook.saved=true//放弃存盘 ole_object.workbooks.close//关闭工作簿 ole_object.Cells(1,1).Value=reptitle ole_object.Range( 'A1 ').Select ole_object.Selection.Font.Size=24 ole_object.selection.HorizontalAlignment=3//水平对齐方式: ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Select ole_object.Range( 'A1: '+f_columname(ll_colnum)+ '1 ').Merge ole_object.Columns(i).ColumnWidth=ld_width ole_object.Columns(i).HorizontalAlignment=3 ole_object.Columns(i).Borders.LineStyle=1 ole_object.Columns(i).Font.Bold=True ole_object.cells(i,j).NumberFormat= "@ " ole_object.cells(i,j).Font.Bold=false ole_object.cells(i,j).value=ls_value OLE_https://www.wendangku.net/doc/f7191123.html,edRange.Rows.Count Sheets.Add 基本操作: Ole_object.Workbooks.add//新建一个Excel文件 Ole_object.Workbooks.Open( "FileName ")//打开一个已存在Excel文件

VF中控制EXCEL的常用操作

VF中控制EXCEL的常用操作 myexcel=createobject('excel.application') &&创建一个对象 myexcel.visible=.t.&&可见 &&bookexcel=myexcel.workbooks.add bookexcel=myexcel.workbooks.open("C:\Documents and Settings\Administrator\桌面\学习\dd.xls") &&打开指定文件 nrows=bookexcel.worksheets('sheet1')&&打开工作表 UsedRange =https://www.wendangku.net/doc/f7191123.html,edRange&&返回工作表中可使用的区域,UsedRange表的属性 usedrange.columns.count&&计算共几列 r=usedrange.rows.count&&汇总行 c=usedrange.columns.count&&汇总列 with myexcel.application .sheets('sheet3').select .sheets.add&&添加一个工作表 https://www.wendangku.net/doc/f7191123.html, = 'ddddd'&&重命名表 endwith myexcel.Worksheets('sheet1').Activate&&选择表为当前工作表 myexcel.cells(1,1).value='sss'&&1,1处的值为 myexcel.activesheet.columns(2).columnwidth=15&&第2列的列宽设myexcel.activesheet.rows(2).rowheight=50&&设第2行的行高 myexcel.activesheet.rows(2).insert&&第2行前插入一行 myexcel.activesheet.columns(2).insert&&第2列前插入一列 myexcel.activesheet.Cells(1,1).Font.size=25&&设置1,1的字体大小myexcel.activesheet.Cells(1,1)https://www.wendangku.net/doc/f7191123.html,='黑体'&&设置字体 myexcel.activesheet.Cells(1,1).clear&&清除内容 myexcel.activesheet.range('A1:C2').select&&选择区域 myexcel.selection.merge &&选择区域合并单元格 myexcel.Range('a1').Formula='=sum(b2,b3,b4,b5)'&&在A1中键入一个公式 myexcel.range('a1').ClearContents myexcel.activesheet.Columns('A:B').Select&&整列选中 myexcel.Selection.NumberFormatLocal="@" &&设置选中的区域为字符型数据 myexcel.activesheet.rows(1).select myexcel.Selection.EntireRow.Delete&&删除选中的行 myexcel.Selection.columns(1).Delete&&删除第几的列 myexcel.workbooks.close&&关闭工作区

PB中操作Excel的技巧集

PB中操作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=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行之前插入分页符 e ole.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厘米

VFP控制EXCEL的方法(终于找到了)

VFP控制EXCEL的常用方法 oExl=CREATEOBJECT('Excel.application') oExl.Visible=.T. oExl.DefaultSaveFormat=39 oExl.SheetsInNewWorkbook=1 oExl.Workbooks.Open(cXLS) oExl.WindowState=-4140 &&窗口最小化 oExl.WindowState=-4143 &&窗口正常化 oExl.WindowState=-4147 &&窗口最大化 *------------------------------------------------------* &&页面设置 oExl.ActiveSheet.PageSetup.PrintTitleRows="$1:$3" &&打印标题 oExl.ActiveSheet.PageSetup.Orientation=2 &&页面方向:1纵向/2横向 *oExl.ActiveSheet.PageSetup.PaperSize=11 &&纸张尺寸:9-A4/11-A5 oExl.ActiveSheet.PageSetup.TopMargin=0.8/0.035 &&顶边距 oExl.ActiveSheet.PageSetup.BottomMargin=0.8/0.035 &&底边距 oExl.ActiveSheet.PageSetup.LeftMargin=0 &&左边距 oExl.ActiveSheet.PageSetup.RightMargin=0 &&右边距 oExl.ActiveSheet.PageSetup.CenterHorizontally=.T. &&页面居中 oExl.ActiveSheet.PageSetup.HeaderMargin=0.5/0.035 oExl.ActiveSheet.PageSetup.FooterMargin=0.5/0.035 oExl.ActiveSheet.PageSetup.LeftHeader="&9表格"”9是字号” oExl.ActiveSheet.PageSetup.CenterHeader="" oExl.ActiveSheet.PageSetup.RightHeader="&9" oExl.ActiveSheet.PageSetup.LeftFooter="" oExl.ActiveSheet.PageSetup.CenterFooter="&9第&P页,共&N页" oExl.ActiveSheet.PageSetup.RightFooter="&9制表人:'+代码+' 制表时间:"+TTOC(DATETIME()) *------------------------------------------------------* &&整体格式设置 oExl.ActiveSheet.Rows.Font.Size=9 https://www.wendangku.net/doc/f7191123.html,='宋体' oExl.ActiveSheet.Rows.RowHeight=0.5/0.035 oExl.ActiveSheet.Rows.NumberFormatLocal="0.00_ ;[红色]-0.00" oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中 *------------------------------------------------------* &&获取最大行号和最大列号 Local nMaxRow,nMaxCol nMaxRow=https://www.wendangku.net/doc/f7191123.html,edRange.Rows.Count nMaxCol=https://www.wendangku.net/doc/f7191123.html,edRange.Columns.Count &&表头格式设置 oExl.ActiveSheet.Rows(1).Font.Size=16

PB从EXCEL中导入数据窗口的函数

PB从EXCEL中导入数据窗口的函数 //***************************************************************// // 函数名称: GF_EXCEL_TO_DATAWINDOW // 函数功能: EXCEL文件导入 DATAWINDOW // 参数类型: DWTAWINDOW // 参数名称: DW // RETURN : 1 SUCCEED -1 ERROR // DATE : 2004 3.1 //***************************************************************// string str_savename,named,s_grxh int excelok,li_net long li_count,i oleobject excelserver excelserver=create oleobject excelok=excelserver.connecttonewobject("excel.application") //检查返回值,以确保已成功地连接到了Excel if excelok <> 0 then messagebox("信息提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!") return -1 end if li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel 文件(*.xls),*.xls") if li_net > 0 then

if str_savename = "" then return -1 dw.settransobject(sqlca) dw.reset() excelserver.workbooks.open(str_savename) excelserver.activesheet.cells.copy //复制到剪贴板 li_count = dw.importclipboard(2) //导入数据 //dw.importfile(str_savename)//直接导入 clipboard("") excelserver.quit() excelserver.disconnectobject() destroy excelserver return 1 else messagebox('信息提示','没有指定导入文件!') return -1 end if

PB 调用VC 创建的DLL 在MIS 中的设计与实现

PB调用VC创建的DLL在MIS中的设计与实现 DLL Founded by the call of PB to VC and its design and Implementation in MIS (1.北京理工大学;2.军械工程学院)陈建泗1,2 商建云1 Chen JianSi Shan JianYun 摘 要:在管理信息系统(MIS)的开发中,常常需要用到OLE技术实现Exce l报表,PowerBuilder 虽然功能强大,但它的OLE控件功能相对较差,而VC具有强大的开发报表功能。以院校教学保障管理中实际应用的教材库存管理信息系统为实例,设计PowerBuilder与VC之间DLL调用接口和Excel报表实现流程,采用VC开发一个实现Excel报表的DLL库,然后通过PowerBuilde r 调用DL L中的函数,实现Excel报表功能。实现了构件的复用,提高了软件开发效率。 关键字:动态链接库;OLE;MIS;PB;VC 中国分类号:TP393 文献标识码:A Abstract:In developing of MIS,usually need to use OLE Technology to realize Excel Statements, PowerBuilder is powerful,but its OLE ActiveX Control function is weak,Excel statement function is powerful in VC.The paper designs the called interface between PowerBuilder and VC, and designs the realizing process in Excel Statements base on MIS of Textbook Stock.,and develops a DLL that has the function to realize Excel Statements,the function of DLL is called by PowerBuilder to realize Excel Statements, realizing component reuse and improving efficiency in the development of software. Key words: DLL;OLE;MIS;PowerBuilder;VC++ 1引言 PowerBuilder是一种面向C/S方式的数据库应用程序的开发工具。PB拥有数据窗口、嵌入式SQL语句等技术,在开发数据库应用程序时显得特别方便。但在涉及到系统底层的一些功能时,PB本身提供的功能就有些不尽如人意。因为Windows操作系统提供给用户的接口是C语言函数形式,而VC在调用系统底层功能方面,从编程角度来讲就要方便得多。VC还有许多PB所不具备的优点,比如数据结构表达能力强,实现复杂算法的程序相对容易开发,运行速度快等。此外,不少外围设备的驱动程序提供的也是C接口。若能将这两种语言结合起来使用,充分发挥它们各自的优点,将会大大提高开发效率、增强应用程序的功能。在管理信息系统的开发中,以VC++作为开发动态链接库DLL的工具,在动态链接库中采用OLE技术,实现Excel 报表,然后再通过PB调用动态链接库, 实现PowerBuilder与VC++的集成,从而实现软件的复用,大大提高系统的开发和运行效率。本文以在院校教学保障管理中实际应用的教材库存管理信息系统为例进行介绍。 2MIS开发中导出Excel的设计 管理信息系统常常需要将查询所得的结果导出到Excel中,便于数据的记录和分发。在生成Excel报表时,教材库存管理信息系统采用了Office组件来实现此功能,以动态链接库DLL的形式完成此项功能。定义好接口关系,只需把要导出的数据以参数形式传给DLL,DLL调用指定的模版完成数据的载入,通过文件流的方式来实现生成Excel文件,并保存到指定的路径。因为VC具有强大的开发报表的功能,系统通过VC开发DLL,然后在PowerBuilder中调用此DLL 实现Excel报表功能。 定义的函数名称和接口如下: 动态链接库文件名称:ExcelDLL; 函数名称:ListToExl(CList *plist,int iFlag);

pb导出excel(直接导出)

基本操作: Ole_object.Workbooks.add//新建一个Excel文件 Ole_object.Workbooks.Open("FileName")//打开一个已存在Excel文件 Ole_object.ActiveWorkBook.Sheets("SheetName").Select//选择文件中一个工作表 Ole_object.Application.Run("MacroName")//运行宏 Ole_object.Application.Visible=TRUE//Excel文件可见 Ole_object.Application.ScreenUpdating=true//设置可见属性 ②格式设置 Ole_object.ActiveSheet.Columns("A:U").AutoFit//列宽自动调整 Ole_object.ActiveSheet.Columns("A:Z").ColumnWidth=6.75//列宽 Ole_object.ActiveSheet.Rows("1:100").RowHeight=12//行高 Ole_object.Application.StandardFont="ArialNarrow";//设置字体 Ole_object.Application.StandardFontSize="8"//设置字号 Ole_object.ActiveSheet.Font.Size="8"//设置字号 Ole_object.ActiveSheet.Font.Bold=True//粗体 Ole_object.ActiveSheet.Font.Italic=True//斜体 Ole_object.ActiveSheet.Font.Underline=True//下划线 Ole_object.ActiveSheet.Font.StrikeThrough=True//删除线 Ole_object.ActiveSheet.HorizontalAlignment=3//水平:4靠右;3居中;2靠左 Ole_object.ActiveSheet.VerticalAlignment=2//垂直:3靠下;2居中;1靠上 Ole_object.ActiveSheet.cells(2,1)https://www.wendangku.net/doc/f7191123.html,=’黑体’//设置字体 Ole_object.ActiveSheet.cells(2,1).font.size=25//设置字体大小 ③工作区域操作: Ole_object.ActiveSheet.Range("A1:Z10").Property=value//设置一个工作区域内的属性值 Ole_object.ActiveSheet.Range("A1:Z10").Merge//合并单元格 Ole_object.ActiveSheet.Range("A1:Z10").WrapText=False//自动换行禁止 Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val//b_type:1左边界;2右边界;3上边界;4下边界;5左上倾斜;6右上倾斜(以上为对单元格的操作)7左边界;8上边界;9下边界;10右边界;11内部垂直边界;12内部水平边界(以上为对区域的操作)//i_val:0无边界线;然后1,2,3。。。依次边界线加粗 Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1//1与7—细实、2—细虚、4—点虚、9—双细实线 ④赋值操作 O le_object.ActiveSheet.range("A1:Z10").Cells.value=“姓名” Ole_object.ActiveSheet.range("A1:Z10").Cells.value=1 Ole_object.ActiveSheet.range("A1:Z10").Cells.value=“2003-01-01” Ole_object.ActiveSheet.Range("A1:Z10").Cells(1,2).value=“年龄”//区域内一个单元格的赋值Ole_object.ActiveSheet.Range("A1:Z1").Cells(1,1).value=“SUM(RC[-9]:RC[-1])” 方法2 OleObject Loo_Excel Loo_Excel=create oleobject if Loo_Excel.ConnectToNewObject("Excel.Application") <> 0 then messagebox('提示','系統未安裝Excel,無法運行此操作!')

VFP全面控制EXCEL

找出其存在的问题,并提出解决方案。针对要开发的系统进行人事系统调研,提出开发系统的可行性分析。在系统结构设计中先后用数据流图、数据字典、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块、所需的数据库表及表字段、系统菜单的设计等。 在系统的实现中,给出了系统的界 最近正好有空,看到不少人对VFP控制EXCEL有兴趣,现将上次的“精华贴”重新整理一下,供各位爱好者参考! oExcel.Selection.NumberFormatLocal = "@" &&把被选定的单元格设为文本格式 1、对象的创建与关闭 ******************************* eole=CREATEOBJECT('Excel.application') && 创建Excel对象 eole.Workbooks.add && 添加新工作簿 eole.Worksheets("sheet3").Activate && 设置第3个工作表为激活工作表 eole.Workbooks.Open("D:\ABC\11.xls") && 打开指定工作簿 eole.visible=.t. && 显示Excel窗口 eole.visible=.F. && 不显示Excel窗口 eole.Caption="VFP应用程序调用Microsoft Excel" && 更改Excel标题栏 eole.ActiveWorkbook.SaveAs("D:\ABC\22.xls") && 工作表另为 eole.ActiveWorkbook.saved=.t. && 放弃存盘 页脚内容1

相关文档