标题:VFP调用WORD模板文件生成多页WORD文档
只看楼主
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
结帖率:96.99%
已结贴  问题点数:20 回复次数:4 
VFP调用WORD模板文件生成多页WORD文档
现有 “股票信息统计表模板.doc”文件和表文件“全部股票.dbf”,我想利用模板文件自动生成多页的“股票信息统计表.doc”,下列程序不知如何修改,请高手赐教,万分感谢!!!
股票信息统计.rar (244.52 KB)


程序代码:
SET TALK OFF
SET SAFETY OFF
SET DATE TO YMD
SET MARK TO "-"
SET CENTURY ON
SET COMPATIBLE OFF
wjm="F:\temp2\股票信息统计表.doc"
WordApp=CREATEOBJECT("Word.application")
WordApp.Visible =.t.
WordTable=WordApp.Application.Documents.Open[wjm] && 关键
SET PATH TO F:\temp2
use 全部股票.dbf
FOR i=1 TO FCOUNT()
FOR k=3 TO RECCOUNT()+2  && word模板表头有2行
GO k-2
WordCellText=EVALUATE(FIELD(i))
DO CASE
CASE ISNULL(WordCellText)
WordCellText=""
CASE TYPE("WordCellText")="N"
CASE TYPE("WordCellText")="D"
WordCellText=DTOC(WordCellText)
CASE TYPE("WordCellText")="T"
WordCellText=TTOC(WordCellText)
CASE TYPE("WordCellText")="M"
WordCellText=TRIM(WordCellText)
WordCellText=STRTRAN(WordCellText,CHR(13),' ')
CASE TYPE("WordCellText")="L"
WordCellText=IIF(WordCellText,".T.",".F.")
CASE EMPTY(WordCellText)
WordCellText=" "
OTHERWISE
* WordCellText=""
ENDCASE
IF EMPTY(WordCellText) OR ISNULL(WordCellText)
WordCellText=" "
ENDIF
WordTable.Tables.Item(1).Cell(k,i).Range.Text=WordCellText
WordTable.Tables.Item(1).Cell(k,i).Range.Font.Size=9
ENDFOR
endfor
WordApp.Documents(1).SaveAs("F:\temp2\股票信息统计表.doc") &&自动保存文件
RELEASE WordApp
WAIT CLEAR
MessageBox( "生成Word文件完毕,文件位置 F:\temp2\股票信息统计表.doc!",64,"完毕")
RETURN


搜索更多相关主题的帖子: WORD 文件 股票 CASE SET 
2021-05-20 17:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
用EXCEL不是更方便吗

坚守VFP最后的阵地
2021-05-20 17:40
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
wjm="F:\temp2\股票信息统计表.doc"
改为:
wjm="F:\temp2\股票信息统计表模板.doc"
2021-05-20 18:00
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:20 
修改模板文件,只保留一行空行。
在Use 全部股票.Dbf后加上
WordApp.activedocument.Tables(1).cell(3,1).Select  
WordApp.Selection.InsertRowsBelow(RECCOUNT()-1)
WordApp.activedocument.Tables(1).cell(3,1).Select
另外,把循环的最外层改为数据表记录指针可能好好些。赋值直接用字段名,看起来代码长,但执行效率会提高很多。
循环中最好不要有单元格中字体等设置,可以在模板中设置好;即使想用程序设置,也在打开模板后先设置好最后一行就可以了。
指定文档的方式最好不要用序号,特别是执行时间比较长时,这样不能对电脑进行其它操作。


[此贴子已经被作者于2021-5-22 09:37编辑过]


dBase有人接盘了。
2021-05-22 09:26
王咸美
Rank: 1
等 级:新手上路
帖 子:569
专家分:0
注 册:2018-1-4
得分:0 
@xuminxz 非常感谢指点!
2021-05-22 09:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505791-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.189543 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved