2,749
社区成员
发帖
与我相关
我的任务
分享Case aFldList[i, 2] = "C" && 字符/字符串
vValue = Trim(vValue) vValue = cast(Trim(vValue) as c(20))
SET SAFETY OFF
SET ESCAPE OFF
Close Databases All
Set Date YMD
Set Century On
USE comptable_1 ALIAS FoxTable IN 0
SELECT FoxTable
oExcelSheet = Getobject("","Excel.Sheet") && 产生Excel对象
oExcelApp = oExcelSheet.Application
oExcelApp.Workbooks.Add()
oExcelApp.ActiveWindow.WindowState=2
oSheet = oExcelApp.ActiveSheet
nFldCount = Afields(aFldList, "FoxTable") &&把当前表的结构信息存放到数组中,并返回表的字段数
For i = 1 To nFldCount
oSheet.Cells(1,i).Value = aFldList[i, 1] &&将表的字段名复制到对应的单元格中
Endfor
cRecc = Str(Reccount("FoxTable")) &&返回当前表的记录数目
Scan
Wait Window Alltrim(Str(Recno())) + "/" + cRecc Nowait &&用来显示当前拷贝记录数
For i = 1 To nFldCount
vValue = .Null.
If At(aFldList[i, 2], "CDLMNFIBYT") = 0
Loop
Endif
cFldName = aFldList[i, 1]
vValue = Evaluate(cFldName)
Do Case
Case aFldList[i, 2] = "C" && 字符/字符串
vValue = Trim(vValue)
Case Inlist(aFldList[i, 2], "N", "F", "I", "B", "Y") && 数值
Otherwise
vValue = .Null.
Endcase
If Vartype(vValue) = "C" And Empty(vValue)
Loop
Endif
If Not Isnull(vValue)
oSheet.Cells(Recno("FoxTable")+1, i).Value = vValue
Endif
Endfor
Endscan
cChrStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
For i = 1 To nFldCount
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
Endfor
=Messagebox("转换完毕!", 64, "OK")
Close Databases All