转载:http://www.bizsupportonline.net/infopath2007/convert-infopath-form-into-word-2007-document-xslt-c-sharp.htm
问题:当前你已经有一个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代码:
10. 添加好后的文件链接所示:  http://www.bizsupportonline.net/infopath2007/articles/20070101_transform.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的文档,并且包含了刚才所填写的数据值。

Infopath2007表单转化成word2007相关推荐

  1. 带有托管代码的InfoPath2007表单模版发布到SharePoint表单库(浏览器方式查看)

    在本篇文章中,将与大家分享如何将一个带有托管代码(manage code)的InfoPath2007表单模版发布到SharePoint Server2007的表单库中,并使得最终用户可以通过浏览器方式 ...

  2. 利用Jquery将表单序列化成JS对象

    //表单序列化成JSON对象 $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.eac ...

  3. [MOSS开发]:带托管代码的infopath2007表单创建, 发布,应用

    目的:这两天我在学习MOSS中关于infopath的内容,多少遇到了些问题,下面总结下我的学习心得,希望新手们能够少走弯路,快速入门. infopath2007简单说明: infopath servi ...

  4. form表单序列化成json数据 将空值用空字符串代替(form表单中checkBox数据会用逗号隔开拼接成字符串)...

    2019独角兽企业重金招聘Python工程师标准>>> $.fn.notEmptyserializeJson = function () {var o = {};var a = th ...

  5. 将form表单序列化成对象

    serializeObject function(form){var o = {};$.each(form.serializeArray(),function(){if(o[this['name']] ...

  6. jQuery最简单的表单提交方式

    第一步:绑定事件 常用的与ajax相关的事件参考如下: 1.$(selector).click(function) 2.$(selector).change(function) 3.$(selecto ...

  7. jquery常用表单操作

    //js将表单序列化成对象 $.fn.serializeObject = function () { var $els = $(this).find("[name]"); var ...

  8. form的表单序列化

    百度可知: 表单序列化的作用是:将表单内容序列化成一个字符串,方便Ajax传递表单值给服务器. 随着Ajax的出现,表单序列化成为一种常见需求 序列化应满足以下几点要求: 1.对表单字段和值进行url ...

  9. jQuery表单序列化方法serialize(),serializeArray()

      我们使用ajax给后台传递数据的时候,经常要获取表单的数据.表单数据不多还好说,但是如果表单字段非常多,那么无疑是非常头疼的事.如何获取大量的表单数据,是非常重要的事情. 表单页面 <for ...

  10. 表单ajax提交插件,jQuery Form 表单提交插件-----ajaxSubmit() 的应用

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.ajaxSubmit() 介绍 立即通过AJA ...

最新文章

  1. IDC:预计全球人工智能支出将在四年内翻一番
  2. 单链表倒数第K个节点的查找和显示
  3. 【每周论文推荐】 初入深度学习CV领域必读的几篇文章
  4. 二叉搜索树的插入与删除图解
  5. easymock 图片_数据模拟神器 easy-mock 正式开源
  6. matlab采样序列幅频特性,数字信号处理课设计指导书20130530.doc
  7. Android 11 将推出系统试用功能,满意后再正式安装
  8. 屌丝也能开发安卓版2048(App Inventor)
  9. 基于python的音频播放器_基于python实现音乐播放器代码实例
  10. mysql enterprise backup 使用_mysql enterprise backup入门使用
  11. HTML基础用 表格做报表
  12. Java代码优化的35个细节,你用了吗?
  13. CMM 关键过程域
  14. C# XNA 简单的 迷宫游戏
  15. wsl2教程可以代替linux吗,WSL2安装使用
  16. prometheus + grafana 对 springboot 项目进行监控
  17. Leviathan(全章)
  18. [转]C语言图形编程(三) -绘图函数②
  19. 知识点 - 多边形的重心、核、三角形的心
  20. C++分糖果-真题红太阳幼儿园有n个小朋友,你是其中之一。保证n≥2。有一天你在幼儿园的后花园里发现无穷多颗糖果,你打算拿一些糖果回去分给幼儿园的小朋友们。由于你只是个平平无奇的幼儿园小朋友,

热门文章

  1. Camera相机研发介绍
  2. 生成对抗网络(GAN)生成MNIST数据
  3. 为什么这么多人会选择单页设计?
  4. PMP项目进度网络图详解——第2篇:CPM关键路径法
  5. MSF之persistence权限维持
  6. Java基础——【双色球案例】判断中奖情况
  7. 在那海的那边,山的那边,有一条蓝鲸鱼----它的名字叫Docker!!
  8. 关于 Unicode 每个程序员应该知道的 5 件事
  9. win10系统激活提示无法连接到你组织的激活服务器如何解决
  10. 安卓程序运行显示permission is only granted to system apps的解决方法