簡單的,用CopytoEXCEL表名.xlstypexl5,注意的是,執行此命令時須使要轉換的DBF表在當前工作區,可以透過Select來擇取工作區。
VFP導成XLS&&DbfToExcel.PRG
&&記得要安裝Excel啊,否則不好用
CLOSEDATABASESALL
SETDATEYMD
SETCENTURYON
cDbfFile=GETFILE("dbf")
IFEMPTY(cDbfFile)
RETURN
ENDIF
USE(cDbfFile)ALIASFoxTableIN0
IFNOTUSED("FoxTable")
=MESSAGEBOX("開啟表失敗,程式將中止!",16,"Error")
cExcelFile=PUTFILE("儲存為(&N):",JUSTSTEM(cDbfFile)+".xls","xls")
IFEMPTY(cExcelFile)
SELECTFoxTable
oExcelSheet=GETOBJECT("","Excel.Sheet")&&產生Excel物件
IFNOTTYPE("oExcelSheet")="O"
=MESSAGEBOX("Excel物件建立失敗,程式將中止!",16,"Error")
oExcelApp=oExcelSheet.Application
oExcelApp.Workbooks.Add()
oExcelApp.ActiveWindow.WindowState=2
oSheet=oExcelApp.ActiveSheet
nFldCount=AFIELDS(aFldList,"FoxTable")
FORi=1TOnFldCount
oSheet.Cells(1,i).Value=aFldList[i,1]
ENDFOR
cRecc=STR(RECCOUNT("FoxTable"))
SCAN
WAITWINDOWALLTRIM(STR(RECNO()))+"/"+cReccNOWAIT
vValue=.NULL.
IFAT(aFldList[i,2],"CDLMNFIBYT")=0
LOOP
cFldName=aFldList[i,1]
vValue=EVALUATE(cFldName)
DOCASE
CASEaFldList[i,2]="C"&&字元/字串
vValue=TRIM(vValue)
CASEaFldList[i,2]="D"&&日期
vValue=DTOC(vValue)
CASEaFldList[i,2]="T"&&日期時間
vValue=TTOC(vValue)
CASEINLIST(aFldList[i,2],"N","F","I","B","Y")&&數值
CASEaFldList[i,2]="L"&&邏輯
CASEaFldList[i,2]="M"&&備註型
OTHERWISE
ENDCASE
IFVARTYPE(vValue)="C"ANDEMPTY(vValue)
IFNOTISNULL(vValue)
oSheet.Cells(RECNO("FoxTable")+1,i).Value=vValue
ENDSCAN
cChrStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
cColumn=SUBSTR(cChrStr,INT((i-1)/26),1)+SUBSTR(cChrStr,IIF(MOD(i,26)=0,26,MOD(i,26)),1)
oSheet.Columns(cColumn+":"+cColumn).ColumnWidth=12
IFaFldList[i,2]="M"
oSheet.Columns(cColumn+":"+cColumn).WrapText=.F.
oExcelApp.ActiveWorkbook.SaveAs(cExcelFile)
oExcelApp.ActiveWorkbook.Close(.F.)
oExcelApp.Quit
oExcelSheet=.NULL.
oExcelApp=.NULL.
WAITCLEAR
=MESSAGEBOX("轉換完畢!",64,"OK")
程式是用VFP8寫的,在VFP6中也可以,沒有問題。只要能夠執行完成,就會是正確的,行數只受你安裝的Excel最大行數限制,至少大於65535行
這個程式支援所有欄位型別,包括MEMO型別欄位。
在VFP中全面控制ExcelVFP和Excel都可以用來進行處理資料庫表格,如果巧妙地將二者的優點結合起來,將會大大方便我們的工作。比如我們可以利用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.xls〃)
5.顯示Excel視窗
eole.visible=.t.
6.更改Excel標題欄
eole.Caption=〃VFP應用程式呼叫MicrosoftExcel〃
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
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-窄行851139-寬行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=.t.
40.關閉工作簿
eole.Workbooks.close
41.退出Excel
eole.quit
以上控制呼叫語句在中文VFP5.0企業版下執行透過,執行環境為Excel97及中文Windows98。
Grid轉Excel的類
*------------------------------------*
rex1105
************
*****轉excel類,編寫日期:2006-05-23ByRex1105
********
PARAMETERSoGrid,cHeader
IFPARAMETERS()<2
Return.F.
cRec=ALLTRIM(oGrid.RECORDSOURCE)
SelectALIAS(cRec)
FILE_NAME=PUTFILE("","","XLS")
IFEMPTY(FILE_NAME)
***檢查是否有安裝office軟體***
excelsheet=GETOBJECT("","excel.sheet")
IFTYPE("excelsheet")#"O"
MESSAGEBOX("您沒有安裝office辦公軟體!",16,"資訊提示")
RELEASEexcelsheet
****檢查檔案有無開啟*****
LOCALloldsetopt,mChanNum,nWS
nWs=2
loldsetopt=DDESETOPTION("safety")
=DDESETOPTION("safety",.F.)
mChanNum=DDEINITIATE("excel","&file_NAME")
IF<>mChanNum-1
MESSAGEBOX("有同名的Excel檔案開啟!請先關閉它!",64,"資訊提示")
=DDETERMINATE(mChanNum)
=DDESETOPTION("safety",loldsetopt)
ELSE
LOCALcCopy,oexl
DIMENSION[oGrid.ColumnCount,2]dColumn
FORi=1TOoGrid.COLUMNCOUNT
FORii=1TOoGrid.COLUMNCOUNT
nOrder=oGrid.COLUMNS(ii).COLUMNORDER
IFnOrder=i
[i,1]dColumn=oGrid.COLUMNS(ii).header1.CAPTION
[i,2]dColumn=oGrid.COLUMNS(ii).CONTROLSOURCE
EXIT
****建立輸出檔案*****
cCopy=""
FORi=1TOALEN(dColumn,1)
cCopy=cCopy+[i,2]dColumn+","
NEXT
cCopy=LEFT(cCopy,LEN(cCopy)-1)
cCopy="COPYTO"+"""+FILE_NAME+"""+"TYPEXL5FIELDS"+cCopy
&cCopy
&&建立excel表,並寫表頭
oexl=CREATEOBJECT("excel.APPLICATION")
WITHoexl
.workbooks.OPEN(FILE_NAME)
.VISIBLE=.T.
.cells.Select
.Selection.FONT.Size=10
ENDWITH
=AFIELDS(cField,cRec)
****第一行加中文標題*****
oexl.cells(1,i).VALUE=[i,1]dColumn
****每列資料處理,分字元與數值日期*****
CASETYPE([i,2]dColumn)="N"
***查詢數值的小數位****
FORii=1TOALEN(cField,1)
IFUPPER([i,2]dColumn)=UPPER(cRec)+"."+[ii,1]cField
nWS=[ii,4]cField
oexl.COLUMNS(retuabc(i)+":"+retuabc(i)).NumberFormatLocal="#,##0."+REPLICATE("0",nWs)+"_);[紅色](#,##0."+REPLICATE("0",nWs)+")"
CASETYPE([i,2]dColumn)="D"ORTYPE([i,2]dColumn)="T"
oexl.COLUMNS(retuabc(i)+":"+retuabc(i)).NumberFormatLocal="yyyy/mm/dd"
****表格線****
oexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+ALLTRIM(Str(RECCOUNT()+1))).Select
oexl.Selection.BorderS(5).LineStyle=-4142
oexl.Selection.BorderS(6).LineStyle=-4142
WITHoexl.Selection.BorderS(7)
.LineStyle=1
.Weight=2
.ColorIndex=-4105
WITHoexl.Selection.BorderS(8)
WITHoexl.Selection.BorderS(9)
WITHoexl.Selection.BorderS(10)
WITHoexl.Selection.BorderS(11)
.Weight=1
WITHoexl.Selection.BorderS(12)
***第一行顯示灰色加粗體****
WITHoexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+"1")
.HorizontalAlignment=3
.VerticalAlignment=2
.WrapText=.T.
.FONT.bold=.T.
.Interior.ColorIndex=40
oexl.Rows("1:1").Select
oexl.Selection.INSERT
&&抬頭
.merge
.VALUE=cHeader
.FONT.Size=14
&&加報表時間
WITHoexl.RANGE("A2:d2")
.VALUE="報表時間:"+TTOC(DATETIME())
&&加表格第一列
oexl.cells.Select
oexl.Selection.COLUMNS.AUTOFIT()
RELEASEoexl
Return.T.
簡單的,用CopytoEXCEL表名.xlstypexl5,注意的是,執行此命令時須使要轉換的DBF表在當前工作區,可以透過Select來擇取工作區。
VFP導成XLS&&DbfToExcel.PRG
&&記得要安裝Excel啊,否則不好用
CLOSEDATABASESALL
SETDATEYMD
SETCENTURYON
cDbfFile=GETFILE("dbf")
IFEMPTY(cDbfFile)
RETURN
ENDIF
USE(cDbfFile)ALIASFoxTableIN0
IFNOTUSED("FoxTable")
=MESSAGEBOX("開啟表失敗,程式將中止!",16,"Error")
RETURN
ENDIF
cExcelFile=PUTFILE("儲存為(&N):",JUSTSTEM(cDbfFile)+".xls","xls")
IFEMPTY(cExcelFile)
CLOSEDATABASESALL
RETURN
ENDIF
SELECTFoxTable
oExcelSheet=GETOBJECT("","Excel.Sheet")&&產生Excel物件
IFNOTTYPE("oExcelSheet")="O"
=MESSAGEBOX("Excel物件建立失敗,程式將中止!",16,"Error")
RETURN
ENDIF
oExcelApp=oExcelSheet.Application
oExcelApp.Workbooks.Add()
oExcelApp.ActiveWindow.WindowState=2
oSheet=oExcelApp.ActiveSheet
nFldCount=AFIELDS(aFldList,"FoxTable")
FORi=1TOnFldCount
oSheet.Cells(1,i).Value=aFldList[i,1]
ENDFOR
cRecc=STR(RECCOUNT("FoxTable"))
SCAN
WAITWINDOWALLTRIM(STR(RECNO()))+"/"+cReccNOWAIT
FORi=1TOnFldCount
vValue=.NULL.
IFAT(aFldList[i,2],"CDLMNFIBYT")=0
LOOP
ENDIF
cFldName=aFldList[i,1]
vValue=EVALUATE(cFldName)
DOCASE
CASEaFldList[i,2]="C"&&字元/字串
vValue=TRIM(vValue)
CASEaFldList[i,2]="D"&&日期
vValue=DTOC(vValue)
CASEaFldList[i,2]="T"&&日期時間
vValue=TTOC(vValue)
CASEINLIST(aFldList[i,2],"N","F","I","B","Y")&&數值
CASEaFldList[i,2]="L"&&邏輯
CASEaFldList[i,2]="M"&&備註型
OTHERWISE
vValue=.NULL.
ENDCASE
IFVARTYPE(vValue)="C"ANDEMPTY(vValue)
LOOP
ENDIF
IFNOTISNULL(vValue)
oSheet.Cells(RECNO("FoxTable")+1,i).Value=vValue
ENDIF
ENDFOR
ENDSCAN
cChrStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
FORi=1TOnFldCount
cColumn=SUBSTR(cChrStr,INT((i-1)/26),1)+SUBSTR(cChrStr,IIF(MOD(i,26)=0,26,MOD(i,26)),1)
oSheet.Columns(cColumn+":"+cColumn).ColumnWidth=12
IFaFldList[i,2]="M"
oSheet.Columns(cColumn+":"+cColumn).WrapText=.F.
ENDIF
ENDFOR
oExcelApp.ActiveWorkbook.SaveAs(cExcelFile)
oExcelApp.ActiveWorkbook.Close(.F.)
oExcelApp.ActiveWorkbook.Close(.F.)
oExcelApp.Quit
oExcelSheet=.NULL.
oExcelApp=.NULL.
WAITCLEAR
=MESSAGEBOX("轉換完畢!",64,"OK")
CLOSEDATABASESALL
程式是用VFP8寫的,在VFP6中也可以,沒有問題。只要能夠執行完成,就會是正確的,行數只受你安裝的Excel最大行數限制,至少大於65535行
這個程式支援所有欄位型別,包括MEMO型別欄位。
在VFP中全面控制ExcelVFP和Excel都可以用來進行處理資料庫表格,如果巧妙地將二者的優點結合起來,將會大大方便我們的工作。比如我們可以利用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.xls〃)
5.顯示Excel視窗
eole.visible=.t.
6.更改Excel標題欄
eole.Caption=〃VFP應用程式呼叫MicrosoftExcel〃
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
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-窄行851139-寬行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=.t.
40.關閉工作簿
eole.Workbooks.close
41.退出Excel
eole.quit
以上控制呼叫語句在中文VFP5.0企業版下執行透過,執行環境為Excel97及中文Windows98。
Grid轉Excel的類
*------------------------------------*
rex1105
************
*****轉excel類,編寫日期:2006-05-23ByRex1105
********
PARAMETERSoGrid,cHeader
IFPARAMETERS()<2
Return.F.
ENDIF
cRec=ALLTRIM(oGrid.RECORDSOURCE)
SelectALIAS(cRec)
FILE_NAME=PUTFILE("","","XLS")
IFEMPTY(FILE_NAME)
Return.F.
ENDIF
***檢查是否有安裝office軟體***
excelsheet=GETOBJECT("","excel.sheet")
IFTYPE("excelsheet")#"O"
MESSAGEBOX("您沒有安裝office辦公軟體!",16,"資訊提示")
RELEASEexcelsheet
Return.F.
ENDIF
****檢查檔案有無開啟*****
LOCALloldsetopt,mChanNum,nWS
nWs=2
loldsetopt=DDESETOPTION("safety")
=DDESETOPTION("safety",.F.)
mChanNum=DDEINITIATE("excel","&file_NAME")
IF<>mChanNum-1
MESSAGEBOX("有同名的Excel檔案開啟!請先關閉它!",64,"資訊提示")
=DDETERMINATE(mChanNum)
=DDESETOPTION("safety",loldsetopt)
Return.F.
ELSE
=DDETERMINATE(mChanNum)
=DDESETOPTION("safety",loldsetopt)
ENDIF
LOCALcCopy,oexl
DIMENSION[oGrid.ColumnCount,2]dColumn
FORi=1TOoGrid.COLUMNCOUNT
FORii=1TOoGrid.COLUMNCOUNT
nOrder=oGrid.COLUMNS(ii).COLUMNORDER
IFnOrder=i
[i,1]dColumn=oGrid.COLUMNS(ii).header1.CAPTION
[i,2]dColumn=oGrid.COLUMNS(ii).CONTROLSOURCE
EXIT
ENDIF
ENDFOR
ENDFOR
****建立輸出檔案*****
cCopy=""
FORi=1TOALEN(dColumn,1)
cCopy=cCopy+[i,2]dColumn+","
NEXT
cCopy=LEFT(cCopy,LEN(cCopy)-1)
cCopy="COPYTO"+"""+FILE_NAME+"""+"TYPEXL5FIELDS"+cCopy
&cCopy
&&建立excel表,並寫表頭
oexl=CREATEOBJECT("excel.APPLICATION")
WITHoexl
.workbooks.OPEN(FILE_NAME)
.VISIBLE=.T.
.cells.Select
.Selection.FONT.Size=10
ENDWITH
SelectALIAS(cRec)
=AFIELDS(cField,cRec)
****第一行加中文標題*****
FORi=1TOALEN(dColumn,1)
oexl.cells(1,i).VALUE=[i,1]dColumn
****每列資料處理,分字元與數值日期*****
DOCASE
CASETYPE([i,2]dColumn)="N"
***查詢數值的小數位****
FORii=1TOALEN(cField,1)
IFUPPER([i,2]dColumn)=UPPER(cRec)+"."+[ii,1]cField
nWS=[ii,4]cField
EXIT
ENDIF
NEXT
oexl.COLUMNS(retuabc(i)+":"+retuabc(i)).NumberFormatLocal="#,##0."+REPLICATE("0",nWs)+"_);[紅色](#,##0."+REPLICATE("0",nWs)+")"
CASETYPE([i,2]dColumn)="D"ORTYPE([i,2]dColumn)="T"
oexl.COLUMNS(retuabc(i)+":"+retuabc(i)).NumberFormatLocal="yyyy/mm/dd"
ENDCASE
NEXT
****表格線****
oexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+ALLTRIM(Str(RECCOUNT()+1))).Select
oexl.Selection.BorderS(5).LineStyle=-4142
oexl.Selection.BorderS(6).LineStyle=-4142
WITHoexl.Selection.BorderS(7)
.LineStyle=1
.Weight=2
.ColorIndex=-4105
ENDWITH
WITHoexl.Selection.BorderS(8)
.LineStyle=1
.Weight=2
.ColorIndex=-4105
ENDWITH
WITHoexl.Selection.BorderS(9)
.LineStyle=1
.Weight=2
.ColorIndex=-4105
ENDWITH
WITHoexl.Selection.BorderS(10)
.LineStyle=1
.Weight=2
.ColorIndex=-4105
ENDWITH
WITHoexl.Selection.BorderS(11)
.LineStyle=1
.Weight=1
.ColorIndex=-4105
ENDWITH
WITHoexl.Selection.BorderS(12)
.LineStyle=1
.Weight=1
.ColorIndex=-4105
ENDWITH
***第一行顯示灰色加粗體****
WITHoexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+"1")
.HorizontalAlignment=3
.VerticalAlignment=2
.WrapText=.T.
.FONT.bold=.T.
.Interior.ColorIndex=40
ENDWITH
oexl.Rows("1:1").Select
oexl.Selection.INSERT
oexl.Selection.INSERT
oexl.Selection.INSERT
&&抬頭
WITHoexl.RANGE("A1:"+retuabc(ALEN(dColumn,1))+"1")
.merge
.VALUE=cHeader
.FONT.Size=14
.HorizontalAlignment=3
.VerticalAlignment=2
.FONT.bold=.T.
ENDWITH
&&加報表時間
WITHoexl.RANGE("A2:d2")
.merge
.VALUE="報表時間:"+TTOC(DATETIME())
ENDWITH
&&加表格第一列
oexl.cells.Select
oexl.Selection.COLUMNS.AUTOFIT()
RELEASEoexl
Return.T.