Infopath2007表单转化成word2007

问题:当前你已经有一个InfoPath2007的表单,但是你想把他转换成一个Word2007 的文档文件(*.docx)
解决方案:
(1).创建一个Word2007临时的模板文档文件(template.docx)
(2).解压出这个模板(template.docx)的document.xml文件,
(3).用这个文件(document.xml)去创建一个XSLT显示样式文件来转换InfoPath表单中的XML到一个新的Word2007文档的Document.xml的文件中就可以了。
 
实现步骤:
1.打开Microsoft Visual Studio 2005 ,创建一个InfoPath 2007表单模板工程(C#语言)
2.按照你的需要设计这个表单模板,在这我的设计如下图-1:
3.我设计的这个表单的数据源视图如下图-2所示:
4.创建一个.docx的文档如下图-3所示,并另存为template.docx。这个文件将是你转换过程中的临时文件。
5.复制tempalte.docx文件,粘贴并重命名为template.zip压缩文件。
6.解压出这个文件的所有文件,如图-4所示:
7.打开进入Word这个文件夹,其包含的文件如下图-5:
8.用记事本的方式打开这个document.xml文件并且另存为transform.xsl文件到跟temlpate.docx文件所在的同一个目录下。
9.替换操作
   (1)把transform.xsl文件的
          
            替换为
           
    (2)在transform.xsl文件的最后添加如下的结束标签
           
    (3)转换到Microsoft Visual Studio 2005 设计的解决方案视图,找到mySchema.xsd文件以代码视图打开。复制所有在的命名空间(除了xsd与默认的命名空间外)粘贴到transform.xsl文件的<xsl:stylesheet>的标签中。<xsl:Stylesheet>标签的开头如下图-6所示:
          
    (4)复制transform.xsl问的所有的定义在标签为<w:document>节点的命名空间,粘贴到标签为<xsl:stylesheet>节点里,现在<xsl:Stylesheet>标签的开头变为如下图-7所示:
 
    (5)在文件transform.xsl中搜索ip_firstname替换为
            
             ip_lastname替换为
            
             ip_website替换为
           
             table_cell_1替换为
            
             找到</w:tblGrid>标签,在后面添加如下XSL代码:
            
             找到</w:tr>标签,在后面添加如下XSL代码:
             
11.切换到VS2005 的表单设计模式,在工具栏中找到“数据”——>“数据连接”弹出对话框。
12.点击“添加”按钮,弹出数据连接向导,选中“仅接收数据”,点击“下一步”。
13.在“希望从何处接收数据”选中“XML文档”,点击“下一步”。浏览找到刚才保存的transform.xsl文件,点击“下一步”——>“下一步”,选中“在打开表单时自动检索数据”,点击“完成”按钮后点击“关闭”完成操作。
14.转到解决方案视图,找到“引用”,右键“添加引用”找到WidowsBase.dll并添加即可。
15.在表单的代码视图中添加如下语句代码:
using System.IO;
using System.IO.Packaging;
using System.Xml.Xsl;
using System.Diagnostics;
16.在表单的“Convert to Word 2007”按钮的Click事件中添加如下代码:
           
17.在工具栏中“工具箱”——>“表单选项”弹出对话框,选择“安全和信任”,设计你的表单签名。
18.项目工程生成以后,你的表单就可以用了!当你填写完成数据,点击按钮就可以自动生成一个Word2007的文档,并且包含了刚才所填写的数据值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值