FileMaker批量生成Word文档,带进度条

2024-05-19 12:13:03

在某些涉及到报表的项目开发中,可能经常会遇到需要批量的生成某些文档的操作,这些文档若是要点击一下,生成一个的话,就太浪费时间了。但若用PageOffice开发平台中的FileMakerCtrl控件来实现的话就简单容易的多了。
下面我就以批量生成10个Word文档为例来分享一下FileMakerCtrl控件的使用方法。
第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站或项目的根目录下添加pageoffice文件夹(在
http://www.zhuozhengsoft.com网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。
第二步:在网站或项目中添加文件夹存放word模板文件,我习惯命名为“doc”,将要打开的文件拷贝到该文件夹下,我批量生成文档所用的模板文件为“template.doc”,该文件中有一个书签,名称为“PO_company”。
第三步:在网站或项目中创建动态页面FileMaker.aspx。在工具箱中拖动一个FileMakerCtrl控件到页面上(FileMakerCtrl控件位于工具箱最下方)。
FileMaker.aspx.cs后台页面中,添加代码如下:
//设置服务器页面
FileMakerCtrl1.ServerPage = "pageoffice/server.aspx";
    string id = Request.QueryString["id"];
    if (id != null && id.Length > 0)
    {
    PageOffice.WordWriter.WordDocument doc = new PageOffice.WordWriter.WordDocument();
    //
给数据区域赋值,即把数据填充到模板中相应的位置
doc.OpenDataRegion("PO_company").Value = "北京卓正志远软件有限公司" + id;
    //设置保存页面

FileMakerCtrl1.SaveFilePage = "Savemaker.aspx?id=" + id;
    FileMakerCtrl1.SetWriter(doc); //
设置数据对象
//设置生成完成后执行的JS函数
FileMakerCtrl1.JsFunction_OnProgressComplete = "OnProgressComplete()";
    //
生成文档
FileMakerCtrl1.FillDocument(Server.MapPath("doc/template.doc"),            PageOffice.DocumentOpenType.Word);}在前台添加JS函数OnProgressComplete()如下:
function OnProgressComplete() {
   window.parent.myFunc(); //
调用父页面(Default.aspx)的js函数}
第四步:在网站或项目中创建动态页面SaveMaker.aspx,保存生成的Word文档到服务器磁盘上,部分代码如下:

//定义FileSaver对象
PageOffice.FileSaver fs = new PageOffice.FileSaver();
   string fileName = "maker" + id + fs.FileExtName;
   //
将Word文档保存到本地磁盘上
fs.SaveToFile(Server.MapPath("doc/") + fileName);
   fs.Close();
第五步:在网站或项目中创建动态页面Default.aspx。先在页面中嵌套一个<iframe>标签:<iframe id="iframe1" name="iframe1" src=""></iframe>。再在页面中添加一个非服务器端按钮,给其添加一个onclick事件,执行JS函数“ConvertFiles()”。最后在页面中添加一个层,用来作为进度条显示文档的生成进度。部分的Html代码如下:
<!--显示进度条-->
   <div id="ProgressBarSide" style="color: Silver; width: 200px; visibility: hidden;position:   absolute; text-align: center; left: 40%; top: 50%; margin-top: -32px">
   <span style="color: gray; font-size: 12px; text-align: center;">正在生成请稍候
...</span><br />
   <div id="ProgressBar" style="background-color: Green; height: 16px; width: 0%; border-width: 1px;
   border-style: Solid;">
   </div>
   </div>
   <!--生成按钮
-->
   <input id="Button1" type="button" value="批量生成Word文件
" οnclick="ConvertFiles()" />
   <!—嵌套的
iframe-->
   <div style="width: 0px; height: 0px; overflow: hidden;">
   <iframe id="iframe1" name="iframe1" src=""></iframe>
   </div>
显示进度条的JS函数myFunc()和开始执行生成文档的JS函数ConvertFiles()如下:

count = 0; //定义生成文件的个数
//显示进度条
window.myFunc = function() {
   count++;
   if (count < 10) {
   document.frames["iframe1"].window.location.href = "FileMaker.aspx?id=" + count;
   //
设置进度条
document.getElementByIdx_x_x("ProgressBarSide").style.visibility = "visible";
    document.getElementByIdx_x_x("ProgressBar").style.width = count + "0%";

} else {
    //
隐藏进度条div
    document.getElementByIdx_x_x("ProgressBarSide").style.visibility = "hidden";
    count = 0;
    //重置进度条

document.getElementByIdx_x_x("ProgressBar").style.width = "0%";
    document.getElementByIdx_x_x("aDiv").style.display = "";
    alert(&apos;
批量生成完毕!&apos;);}};

//开始生成文档
function ConvertFiles() {
    //
第一次让子页面自刷新
document.frames["iframe1"].window.location.href = "FileMaker.aspx?id=" + count;}综上所述,FileMakerCtrl控件使得10个Word文档很简单的就生成完成了,上述示例的完整代码可在卓正网站(
http://www.zhuozhengsoft.com)的下载中心免费下载查看。

转载于:https://blog.51cto.com/6949400/1218613

FileMaker批量生成Word文档,带进度条相关推荐

  1. Excel转Word,Excel导出Word,利用Excel表批量生成Word文档,邮件合并进阶版

    单击播放视频教材 利用Excel数据批量生成Word文档升级版,Excel转W 01需求概述 假设有图1所示的数据,需要批量生成WORD成绩通知单,通知单必须遵循图2的样式. (案例中的姓名.学校名称 ...

  2. 使用FreeMarker生成word文档(带图片),word转pdf,预览pdf,pdf下载工具类

    一.下载或配置: 下载jar包 :freemaker的jar包下载 下载jar包 :aspose-words的jar包下载 或者配置maven依赖: pom.xml添加aspose的依赖包(maven ...

  3. 根据 Excel 数据表的内容和 Word 模板文件,批量生成 Word 文档

    概要:想必大家都遇到过批量生成 Word 文件的场景.我们这里有一个 Excel 数据表,那么如何根据这个数据表批量地生成 Word 文件呢?有一种方法就是我们常见的邮件合并,但是邮件合并的操作步骤太 ...

  4. Python 实现批量生成 Word 文档:市民水电费缴费通知单

    用 Python 根据已有 Word 模板文件与需求自动生成多个文档 前言: 需求描述: 主要思路及代码: 读取Word模板数据: 将上诉代码写成函数: 读取Excel文件数据: 替换及新建Word文 ...

  5. java根据模板动态生成word文档带表格

    废话不多说上代码 <dependencies><!-- web支持 --><dependency><groupId>org.springframewor ...

  6. Java使用FreeMarker自动生成Word文档(带图片和表单)

    Java使用FreeMarker自动生成Word文档(带图片和表单) 1 背景 2 目标效果 3 创建Word模板 3.1 创建模板文档 3.2 转换模板文档 3.3 处理模板文档中的占位符 3.4 ...

  7. C# 导出word文档及批量导出word文档(3)

    在初始化WordHelper时,要获取模板的相对路径.获取文档的相对路径多个地方要用到,比如批量导出时要先保存文件到指定路径下,再压缩打包下载,所以专门写了个关于获取文档的相对路径的类. 1 #reg ...

  8. 用Word转换向导批量转换Word文档(转)

    用Word转换向导批量转换Word文档(转)     目前,我校所在地区教育系统上下级之间文件材料的下达和上报都实现了网络传输.为了提高办公效率,主管教育部门要求这些材料一律使用纯文本格式.而由于排版 ...

  9. python读取word指定内容_python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于w ...

最新文章

  1. 强行分类提取特征自编码网络例2
  2. 更改sybase下设备名
  3. (转)关于Linux核心转储文件 core dump
  4. 【机器视觉】 dev_set_tool_geometry算子
  5. java一个接口可以继承另外一个接口吗
  6. java jar 目录_将Java类路径中的所有jar包括在一个目录中
  7. Java内存模型FAQ(四)重排序意味着什么?
  8. (59)FPGA面试题-什么是有限的状态机?有限状态机可分为几类,分别是什么?
  9. c语言把一段编码注释,C语言编码规范——着重注意点整理
  10. 数据可视化、模板框架、动态控件、可视化大屏、数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、消防、大屏展示、安防、智慧城市、旅游、运输、医疗卫生、贸易、电力、政务、水质、工业园区环境监测
  11. JAVA day18,19 单列集合Collection:List(ArrayList,LinkedList,Vector)、Queue(Deque)、Set(HashSet,TreeSet),比较器
  12. Django之中间件,csrf跨站伪造请求,auth认证模块
  13. java自动封箱_java自动封箱是什么意思
  14. android 布局如何居中,Android ConstraintLayout约束布局的居中详解
  15. WPS Office 2019 For Linux 设置显示语言
  16. (转载)洪磊并不是反叛英雄
  17. Android拍摄raw照片,这20款摄影APP,让你的照片飞上天!
  18. java实现ln10_Java数学函数
  19. 【RK PX30】 瑞芯微四核64位工业级芯片PX30[RK3358]安卓核心板
  20. Yarn Clinet模式运行spark报错问题

热门文章

  1. Unity 画自定义网格
  2. 自定义 swap 函数
  3. Linux上抓arp包,linux c arp协议分析一 - 捕捉局域网内的arp包
  4. 有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。
  5. 通过OTG接口进入Android系统,Android4.0.3 USB OTG底层插入上报过程分析(1)
  6. android 7.0开机脚本,Android 7.0系统的手机无法执行appium脚本的问题:PS 'uiautomator'...
  7. keil c语言中位取反,关于按位取反“~”的故事
  8. js监听audio播放完毕-重置音频
  9. vivox50支持鸿蒙,vivo X50 Pro+只有拍照好看?实测过后告诉你真相
  10. 计蒜客——成绩排序 Java求解