导入dbf
用saveas()把excel表另存为.dbf文件时里面没有数据
程序代码:
FILENAME = GETFILE("XLS","文件名","确定",0,"请选择EXCEL文件") IF EMPTY(FILENAME) MESSAGEBOX("未选择(未找到需要的) EXCEL 文件",64,"系统信息") RETURN ENDIF IF USED(JUSTSTEM(FILENAME)) USE IN SELECT(JUSTSTEM(FILENAME)) ENDIF *---- 下面这段代码可用后面的代码替换:DBFNAME = FORCEEXT(FILENAME,"DBF"),见WITH OEXCEL 注释处 *---- 优点在于:1-能判断要保存的DBF文件是否有重名; *---- 2-生成的 DBF 文件可以换名保存,也可以更换保存路径。 *------------------------------------------------------------------ DBFNAME = PUTFILE("保存为(&N):",JUSTSTEM(FILENAME)+".DBF","DBF") IF EMPTY(DBFNAME) MESSAGEBOX(" DBF 文件名不能为空",64,"系统信息") RETURN ENDIF *------------------------------------------------------------------ OEXCEL=CREATEOBJECT("EXCEL.APPLICATION") && 创建 EXCEL WAIT "正在转换 "+FILENAME WINDOW TIMEOUT 0 NOWAIT AT SROWS()/2,(SCOLS()-LEN("正在转换 "+FILENAME))/2 WITH OEXCEL .WORKBOOKS.OPEN(FILENAME) && 在 EXCEL 中打开指定的工作簿 .DISPLAYALERTS=.F. && 关闭提示信息 .WORKSHEETS(1).SELECT && 选中 SHETT1 为当前工作表(1 可改为 "SHEET1") .SELECTION.COLUMNS.AUTOFIT && 最适合的列宽 R=OEXCEL.SHEETS(1).USEDRANGE.ROWS.COUNT && 有数据的行 C=OEXCEL.SHEETS(1).USEDRANGE.COLUMNS.COUNT && 有数据的列 .CELLS(R,C).SELECT && 选中 R 单元到 C 单元的区域 *DBFNAME = FORCEEXT(FILENAME,"DBF") && 将扩展名 XLS 替换为 DBF .ACTIVEWORKBOOK.SAVEAS(DBFNAME,11) && 保存为 DBF4 格式 .WORKBOOKS.CLOSE .QUIT ENDWITH RELEASE OEXCEL WAIT CLEAR MESSAGEBOX(DBFNAME+" 转换完毕",64,"系统信息")试试
[ 本帖最后由 sdta 于 2013-4-12 21:34 编辑 ]