//outexcel(dw_1)
//global function integer f_outputtoexcel_new (datawindow dw_1);
//函式名:out_excel
//輸入: dw_1 - datawindow,指定的資料視窗
//回傳值: Integer
constant integer ppLayoutBlank = 12
OLEObject ole_object,xlapp//定義一個類
// 創建這個類的實體------OLE_Object和xlapp
ole_object = CREATE OLEObject
xlapp = CREATE OLEObject
/////////////////////////////////////////////////////////////////////////
integer li_ret
long i,j,k
// 連接------ConnectToObject
li_ret = ole_object.ConnectToObject("","Excel.Application")
IF li_ret <> 0 THEN
// 如果Excel還沒有打開,則新建--------ConnectToNewObject
li_ret = ole_object.ConnectToNewObject("Excel.Application")
if li_ret <> 0 then
MessageBox('OLE錯誤','OLE無法連接!錯誤號:' + string(li_ret))
return 0
end if
//ole_object.application.workbooks.open("e:\bank\lls2.xls")
ole_object.Visible = True
END IF
ole_object.Workbooks.Add
xlapp=ole_object.application.activeworkbook.worksheets[1]//xlapp.Activate//設定第1個作業表為激活作業表 /
long numcols,numrows
numcols=long(dw_1.object.datawindow.column.count)
//得到資料視窗資料的列數與行數(行數應該是資料行數 + 1)
numrows=dw_1.rowcount()
//得到資料視窗資料的列數與行數(行數應該是資料行數 + 1)
//Excel 中 第一個 欄位的名稱“序號”
xlapp.cells[1,1]='序號'
//寫表體
for i=1 to numcols
dw_1.setcolumn(i)//設定當前欄位
xlapp.cells[1,i+1]=dw_1.GetColumnName()//取出當前欄位的名稱
ls_col =trim(dw_1.GetColumnName())
for j=1 to numrows
if i = 1 then
xlapp.cells[j+1,1]="=row()-1"
xlapp.cells[j+1,i+1]=dw_1.object.data[j,i]
elseif Match(ls_col, "身份證") then //判斷是否是:“ 身份證欄位”
xlapp.cells[j+1,i+1]="'"+string(dw_1.object.data[j,i])
else
xlapp.cells[j+1,i+1]=dw_1.object.data[j,i] //寫出表的內容
end if
next
next
//powerbuilder 選中Excel中的所有資料 畫框線
xlapp.UsedRange.Borders(1).LineStyle = 1
xlapp.UsedRange.Borders(2).LineStyle = 1
xlapp.UsedRange.Borders(3).LineStyle = 1
xlapp.UsedRange.Borders(4).LineStyle = 1
xlapp.UsedRange.RowHeight=37//*********1/0.035 (設定行高為1厘米,1磅=0.035厘米)
//設定頁腳 第&P頁
xlapp.PageSetup.CenterFooter="第&P頁"
//設定頁面shuiping居中
xlapp.PageSetup.CenterHorizontally=True
xlapp.UsedRange.font.name= "宋體 "//設定字體
xlapp.UsedRange.Font.Size= "11"//設定字號
///////////////////////////////最后劃分范圍 否則xlapp.UsedRange 會出錯!!/////////////////////////////
xlapp.Rows("1:1").font.name= "黑體 "//第一行
xlapp.Rows("1:1").Font.Bold=True //第一行 首行字體變為“粗體”
xlapp.Rows("1:1").HorizontalAlignment = 3//第一行 1:居左 2:居右 3:居中
xlapp.Columns(1).HorizontalAlignment=3 //第一列 居中
xlapp.Cells.Select//全選表
xlapp.Cells.EntireColumn.AutoFit//excel自動調整單元格寬度
xlapp.Range( "a1:a1").Select //選擇A1單元格
/////////////////////Shutting down and disconnecting from the server/////////////////////////////////////
//ole_object.Quit() //退出Excel檔案
ole_object.disconnectobject()
xlapp.disconnectobject()
DESTROY ole_object
DESTROY xlapp
return 1
uj5u.com熱心網友回復:
我實際是使用的類實作的。uj5u.com熱心網友回復:
找個PBToExcel 的pbd 就好了!uj5u.com熱心網友回復:
別這樣,老哥,匯出excel都用dw2xl嗎?uj5u.com熱心網友回復:


不想搞太麻煩的可以借鑒使用
uj5u.com熱心網友回復:
關注一下,也想知道這個的答案。uj5u.com熱心網友回復:
好用的就是dw2xls轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6902.html
標籤:腳本語言
下一篇:PB10.0無法創建資料庫
