VFP导出到EXCEL文件的另类方法

  • 格式:txt
  • 大小:2.39 KB
  • 文档页数:1

VFP导出到EXCEL文件的另类方法

VFP导出到excel文件的另类方法 论坛中在讨论vfp导出到EXCEL文件的方法,其中的方法以前都有试过,或多或少都有些不近人意的地方,比如字符形数字变成了数字,身份证号码居然是科学计数显示
几年来一直用这样的方法处理,请大家点评

LOCAL lsWJM,OleApp
m.lsWJM=PUTFILE("文件名:","未命名.XLS","XLS")
IF EMPTY(m.lsWJM)
RETURN
ENDIF
USE 数据表
COPY TO SYS(2023)+"\TMP.DBF" FOX2X
USE
OleApp=CREATEOBJECT("Excel.Application")
WITH OleApp
.DisplayAlerts=.F.
.Application.WorkBooks.Open(SYS(2023)+"\TMP.DBF")
edRange.Select
.Selection.Copy
.Workbooks.Add
.Range("A1").Select
.Selection.PasteSpecial()
.Selection.Columns.AutoFit
.Range("A1").Select
_CLipTEXT=""
.Application.Windows("TMP.DBF").Activate
.ActiveWindow.Close
DELETE FILE SYS(2023)+"\TMP.*"
.ActiveWorkbook.SaveAs(m.lsWJM)
.Application.Visible=.T.
.DisplayAlerts=.T.
ENDWITH
RELEASE OleApp
OleApp = Null

如果你是固定的数据,可以将EXCEL文件做成模板,设置纸张大小、页边距、字体字号、标题、表头等,然后在需要导入数据的单元格中输入"开始记录"(不要输入引号)

LOCAL lsWJM,OleApp,YXGZS,H
m.lsWJM=PUTFILE("文件名:","未命名.XLS","XLS")
IF EMPTY(m.lsWJM)
RETURN
ENDIF
IF !FILE("模板文件.XLS")
=MessageBox("请先创建Excel模板文件!",64,"宇星工作室")
RETURN
ENDIF
USE 数据表
COPY TO SYS(2023)+"\TMP.DBF" FIELDS FieldList FOX2X &&选择所需要的字段
USE
OleApp=CREATEOBJECT("Excel.Application")
WITH OleApp
.DisplayAlerts=.F.
.Application.WorkBooks.Open(SYS(2023)+"\TMP.DBF")
edRange.Select
.Selection.Copy
.Application.WorkBooks.Open(SYS(5)+SYS(2003)+"\模板文件.XLS") && 模板文件需要路径
.Range("A1").Select
m.YXGZS=.Cells.Find("开始记录",.ActiveCell,-4123)
IF VARTYPE(m.YXGZS)="O"
m.YXGZS.Activate
Release YXGZS
m.H=.ActiveCell.Row
.Selection.PasteSpecial(-4163,-4142,.F.,.F.) &&仅粘贴数值
.Rows(m.H).Select
.Selection.Delete
ELSE
.Selection.PasteSpecial()
.Selection.Columns.AutoFit
ENDIF
.Range("A1").Select
_CLIPTEXT=""
.Application.Windows("TMP.DBF").Activate
.ActiveWindow.Close
DELETE FILE SYS(2023)+"\TMP.*"
.ActiveWorkbook.SaveAs(m.lsWJM)
.Application.Visible=.T.
.DisplayAlerts=.T.
ENDWITH
RELEASE OleApp
OleApp = Null



下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。