通过VFP程序将Excel文件中的图Copy到Word文档中

koolgi 2006-05-19 10:18:30
大家好,本人由于工作需要,需要在VFP中生成一个简报,简报的形式最终生成一个Word文档,文档里面有文字、数字、表格和图片。我首先做了个Word的模板,在用Word编辑模板里把需要插入数字和图片的地方,插入一个标签,然后VFP程序里就可以把VFP表中的数据插入到Word标签的指定位置。当插图的想法是,通过VFP控制Excel创建一个Excel文件并生成一个直方图,然后执行一个copy命令(是在VFP中通过wordbasic实现),然后继续在VFP里开打Word模板将剪切板里的图片,粘贴到模板中。最后我打开Word文件发现本应该是直方图,却成了一个小m,m上还有一个数字2,类似一个m的平方。具体的 请看我的附件里的dot模板文件。

上述实现代码是在微软网站上找到,人家是VB版的,我改成VFP的了,文章题目是:How To Create a Report in Word w/Excel Chart via OLE Automation。
代码下如:
1、生成excel文件,并在文件加入一个直方图
SELECT 1
USE datas\t2_1_3.dbf
eole=CreateObject("excel.application")
eole.Workbooks.Add
xlSheet=eole.Sheets(1)
eole.Caption="VFP应用程序调用Microsoft Excel"
xlSheet.Cells(1,1).value="一车间"
xlSheet.Cells(1,2).value=y1
xlSheet.Cells(2,1).value="二车间"
xlSheet.Cells(2,2).value=200
xlSheet.Cells(3,1).value="三车间"
xlSheet.Cells(3,2).value=150
xlSheet.Cells(4,1).value="四车间"
xlSheet.Cells(4,2).value=223
xlSheet.Cells(5,1).value="五车间"
xlSheet.Cells(5,2).value=152
fanwei="A1:B5"
XlSheet.Range(fanwei).select
objChart1 = xlSheet.ChartObjects.Add(161.25, 1.5, 524.25, 330)
objChart1.Chart.ChartWizard(xlSheet.Range(fanwei), ;
3, 1, 2, 1, 1, .T., "Companies by Max Order Amount", ;
"Company Name", "Max Order Amount", "")

WITH objChart1.Chart.Axes(1).TickLabels.Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 4
.Strikethrough = .F.
.Superscript = .F.
.Subscript = .F.
.OutlineFont = .F.
.Shadow = .F.
.Underline = 1
.ColorIndex = 1
.Background = 1
ENDWITH
eole.DisplayAlerts=.F.
fname="E\abc.xls"
eole.ActiveWorkbook.Saveas(fname)
objChart1.Copy
rele eole,XlSheet
CLOSE DATABASES
MESSAGEBOX("OK")
RETURN

特别注意:objChart1.Copy是把图copy到剪切板

2、将剪切板里的图copy到word中:
PROCEDURE ProduceJB
oWordObj=CREATEOBJECT("Word.Basic")
oWordObj.FileOpen("\Template\jianbao.dot")
oWordObj.ww7_EditGoto("BM1")
oWordObj.Insert(STR(YEAR(DATE()),4,0))
oWordObj.ww7_EditGoTo("BM2")
oWordObj.Insert(STR(YEAR(DATE()) + 1,4,0))
oWordObj.ww7_EditGoTo("BM3")
oWordObj.Insert("广州")
oWordObj.ww7_EditGoTo("CHART1")
oWordObj.EditPaste
oWordObj.PasteAndFormat
oWordObj.FileSaveAs("\简报.doc")
oWordObj.AppClose("Microsoft Word")
RELEASE oWordObj
CLOSE DATABASES
 MESSAGEBOX("OK")
RETURN
ENDPROC

特别是oWordObj.EditPaste,这句,实现将剪切板里的图copy到Word中,不过无法实现,是一个m平方的图标

请大家帮忙解决!

谢谢大家!
...全文
163 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,138

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧