Office集成之Word模板的套打

报表时管理信息系统、ERP软件中最多用到的东西,但VB6本身所提供的报表功能简单,而使用专业的报表控件(如水晶报表)都是要收费的,那么如何解决这个问题呢?

在目前很多软件中都有了Word、Excel模板套打的功能,即在Office中创建好模板文件,然后通过Office的COM交互组件实现在VB等语言中进行控制输出。

 

下面的例子演示了如何实现以一个Word模板的套打,源代码可以在我的下载资源中找到。

代码如下:

 

'标题:Office集成之Word模板套打
'编制:santook (QQ120742353)

 

Private Declare Function GetTickCount Lib "kernel32" () As Long


Private Sub Command1_Click()
    Dim wd As New Word.Application
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    '打开模板
    wd.Documents.Open fso.buildpath(App.Path, "template.doc")
   
    '开始数据填充
    wd.ActiveDocument.Tables(1).Cell(1, 2).Range.Text = "Nokia N73"
    wd.ActiveDocument.Tables(1).Cell(1, 4).Range.Text = "051206"
    wd.ActiveDocument.Tables(1).Cell(2, 2).Range.Text = "RM-60"
    wd.ActiveDocument.Tables(1).Cell(2, 4).Range.Text = "GSM"
    wd.ActiveDocument.Tables(1).Cell(3, 2).Range.Text = "60.10.11"
    wd.ActiveDocument.Tables(1).Cell(3, 4).Range.Text = "09-15-07"
    wd.ActiveDocument.Tables(1).Cell(4, 2).Range.Text = "14.251"
    wd.ActiveDocument.Tables(1).Cell(5, 2).Range.Text = "05251064721030"
    wd.ActiveDocument.Tables(1).Cell(6, 2).Range.Text = "经常死机;电池异常掉电;"
    wd.ActiveDocument.Tables(1).Cell(8, 1).Range.Text = "Nokia S60智能手机中病毒引起的异常死机现象;" & vbCrLf & "使用非诺基亚标配的原装电池,触点接触不正常无法正常供电。"
    wd.ActiveDocument.Tables(1).Cell(10, 1).Range.Text = "刷新机内Flash内存后故障修复;" & vbCrLf & "非保修条例范围;"
    wd.ActiveDocument.Tables(1).Cell(12, 2).Range.Text = "3206-071022-CN"
    wd.ActiveDocument.Tables(1).Cell(13, 2).Range.Text = "南通市十字街诺基亚手机维修站"
    wd.ActiveDocument.Tables(1).Cell(14, 2).Range.Text = "蒋和平"
    wd.ActiveDocument.Tables(1).Cell(14, 4).Range.Text = "320670124"
    wd.ActiveDocument.Tables(1).Cell(15, 2).Range.Text = Date$ & " " & Time$
   
    '开始打印
    wd.Visible = False
    wd.ActiveDocument.PageSetup.PaperSize = wdPaperA4
    wd.PrintOut
    iret = wd.ActiveDocument.Application.Caption
    iwait = GetTickCount
    While (GetTickCount - wait) / 1000 < 3
        DoEvents
    Wend
    wd.Quit False
    MsgBox "已经成功地创建了打印文档!", vbInformation, "打印完成"
End Sub

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,我们可以使用第三方库中的功能来调用Word文档模板进行套打。其中,常用的第三方库是python-docx和pywin32。 使用python-docx库: 1. 首先,安装python-docx库:`pip install python-docx` 2. 创建一个Word文档模板,将需要动态替换的内容设置为占位符,比如使用`{name}`作为姓名的占位符。 3. 在Python代码中导入python-docx库:`from docx import Document` 4. 打开Word模板文档:`doc = Document('模板文件.docx')` 5. 使用`doc`对象的`paragraphs`属性遍历所有段落,使用`runs`属性遍历段落中的所有run,通过替换run的文本来实现套打:`run.text = run.text.replace('{name}', '张三')` 6. 最后,保存并关闭Word文档:`doc.save('输出文件.docx')` 使用pywin32库: 1. 首先,安装pywin32库:`pip install pywin32` 2. 使用`win32com.client`模块导入Word应用:`from win32com.client import Dispatch` 3. 创建一个Word应用对象并打开Word文档模板:`word_app = Dispatch('Word.Application') doc = word_app.Documents.Open('模板文件.docx')` 4. 使用`doc`对象的`Content.Find`方法来查找并替换占位符:`word_app.Selection.Find.Execute('{name}') word_app.Selection.TypeText('张三')` 5. 最后,保存并关闭Word文档:`doc.SaveAs('输出文件.docx') doc.Close()` 以上是两种常见的调用Word文档模板进行套打的方法,在实际使用中,可以根据具体的需求选择合适的方法来实现套打功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值