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 打赏 收藏 转发到动态 举报
写回复
用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-窄行8511 39-寬行1411) 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版本的

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧