社区
脚本语言
帖子详情
PB如何调用oleobject合并2个excel文件
springlyn
2017-12-21 04:27:47
请问大神
如已有两个excel:
A.xls 和 B.xls,各只有sheet1有内容。
如何在脚本中,生成一个新的excel文件,
将A.xls的内容copy到sheet1,将B.xls的内容copy到sheet2,
最后保存为C.xls。
...全文
804
2
打赏
收藏
PB如何调用oleobject合并2个excel文件
请问大神 如已有两个excel: A.xls 和 B.xls,各只有sheet1有内容。 如何在脚本中,生成一个新的excel文件, 将A.xls的内容copy到sheet1,将B.xls的内容copy到sheet2, 最后保存为C.xls。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
eclat2299
2017-12-22
打赏
举报
回复
轉貼一些PB操作EXCEL常用的function給您參考 這些應能符合您的需求 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=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=.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=true 40.關閉工作簿 eole.Workbooks.close 41.退出Excel eole.quit 42 合併 string worksheet,beginRowcol,EndRowCol MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Select MyOLE.ActiveWorkBook.Sheets(worksheet).Range(BeginRowCol ":" EndRowCol).Merge 43 MyOLE.getNumberOfSheets() //讀取 sheet 數 MyOLE.getSheetAt(整數) //由整數取sheet 44 sheet改名 MyOLE.ActiveWorkBook.Sheets(olename).select MyOLE.ActiveWorkBook.Sheets(olename).name=newname MyOLE=Create OLEObject ConnectErr=MyOLE.ConnectToNewObject ("excel.Application") MyOLE.visible=false //打開指定的XLS檔啟動workbooks MyOLE.application.workbooks.Open (FilePath) //對XLS檔進行了改動以後,在關閉該檔時是否需要向使用者提出警告。 MyOLE.Application.DisplayAlerts = False if isnull(MyOLE) then return -1 ; if ConnectErr <0 then choose case ConnectErr case -1 messagebox('錯誤提示','無效的調用') case -2 messagebox('錯誤提示','類名沒發現') case -3 messagebox('錯誤提示','物件不能創建') case -4 messagebox('錯誤提示','檔不能連接') case -5 messagebox('錯誤提示','不能連接現在的物件') case -6 messagebox('錯誤提示','檔無效') case -7 messagebox("錯誤提示","檔不存在或已經打開") case -8 messagebox("錯誤提示","伺服器不能裝載選擇的檔") case -9 messagebox("錯誤提示","其他錯誤") end choose return -1 end if
jyglint
2017-12-21
打赏
举报
回复
excel中录制一个宏,记录以上操作,然后把它的代码翻译为pb版本的
PB
对
excel
的操作
Pb
中对
Excel
文件
的应用
Ole
object
ole
_
object
//建立
OLE
对象
ole
_
object
=create
ole
object
//创建对象 integer li_ret li_ret=
ole
_
object
.connectto
object
( " ", "
Excel
.Application ")//建立连接 if li_ret <> 0 then //如果
Excel
还没有打开,则新建。 li_ret=
ole
_
object
.ConnectToN...
PB
调用
EXCEL
的操作不失为一种好的报表输出方式
对于较为中国化的报表,虽然后dw这个坚强后盾,但是也难不住繁复疲劳的应对。不过我们可以知道,数据的输出,都是居于table的栏位或者计算字段。只是很多统计的模式和展现模式不同。我在一年前作完一个系统,可是客户几乎隔三差五有新的东东要输出报表。终于我发现。让客户先在
excel
里弄好,然后再写程序来输出也是一个不错的方法。关键是,客户给的东西不必要再进自己的系统,所以数据不会发生什么问题。如果
控制多个datawindow数据
合并
成一个
excel
导出【
PB
】
最近项目需要,需要把多个datawindow的数据
合并
成一个
excel
导出。本地项目没有其他代码借鉴,自己接触
PB
顶多3个月时间,而网上关于
PB
的消息少之又少。前些日子在powerbuilder论坛发个帖子求组,幸运得到powerbuilder版主和一位热心网友提示,通过自己不断地coding and debug, 我想要的效果终于得到了,:-) 现在我把源码贡献出来,大家一起学习,欢迎
pb
控制
excel
合并
某些单元格
合并
某些单元格 -------------------------------------------------------------------------------- String docname,named String current_dir Integer i,j String ls_colums[] = {"A","B","C"} //待
合并
的列 String ls_
使用
PB
合并
Excel
中重复单元格
从数据库或
PB
中转的数据到
Excel
中,为了便于阅读,通常希望把某些列的上下行相同的数据
合并
单元格,查看
Excel
中好像没有此功能,于是通过
PB
来完成了该需求。 如下代码: String docname,named String current_dir Integer i,j String ls_colums[] = {"A","B","C"} //待
合并
的列 String
脚本语言
740
社区成员
8,036
社区内容
发帖
与我相关
我的任务
脚本语言
PowerBuilder 脚本语言
复制链接
扫一扫
分享
社区描述
PowerBuilder 脚本语言
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章