java-word-MassProduction

目录

一.使用方法

1.制造题库所需Word模板

需要填充数据的地方使用 ${pid} 代替。

将这个word选择另存为,保存格式选择为xml,然后将这个xml放到项目的ftl目录下,后缀名改为.ftl 。

2.配置数据库

项目中使用了hibernate,表结构可以自动生成,但前提得先有mysql数据库环境且创建好数据库,数据库连接信息可以在hibernate.hbm.xml中修改。

对应上面模板实例中的${pid}值,在对应数据库中选择题目写入。

3.运行程序

在程序中选择要使用的word模板.

写入输出的word名称.

点击生成后,在项目word目录下:

当然也可以在数据库中导入大量题目,在导入时随机选择题目,然后对应相应的pid生成模板。

二.开发流程

1.题目模型

数据库使用了hibernate,hibernate的相关知识不再做解释.

Problem中定义了一道题目的信息。

id数据库主键索引.

pid对应word模板的${id}.

title对应了题目的内容。

IProblemDAO是一个接口,用来实现题目的增删改查.

public interface IProblemDAO {

void save(Problem problem);

void update(Problem problem);

void delete(Problem problem);

Problem get(Integer id);

List listAll();

}

ProblemDAOImpl实现了IProblemDAO接口.

hibernate的save,delete,update,get等不再阐述.

ProblemDAOImpl的实现中我们使用到的其实只有listAll()方法。至于其他的暂时用不到。

2.Word生成

这里主要用到了一个叫freemarker的第三方包。

1.什么是FreeMarker?

FreeMarker是一款模板引擎,一种开源的、基于模板的、用来生成/输出文本的通用工具。

它不是面向最终用户的,不是Web应用框架,它是Java的一个类库,是Web应用框架中的一个实用的组件,是一款可以嵌入开发产品的一款应用程序。

FreeMarker的设计是被用来生成HTML页面,尤其是通过基于实现了MVC模式的Servlet应用程序。

使用MVC模式的动态网页的构思,使得你可以将前端设计从程序中分离出来,更加贴合java的各司其职的编程思想,使得代码更简洁且便于维护。

尽管FreeMarker也有编程能力,但它也不像PHP那样的一种全面的编程语言。

一般我们只使用FreeMarker的模板生成个文本来呈现早已准备好的数据,它仅仅来生成文本,它也非常适用于非 Web应用环境的开发。

要注意的是,我们使用FreeMarker作为视图层组件,是为给如 Struts这样的 Model2框架提供现成的解决方案,已经在一定情况下提高页面的响应速度。

2.FreeMaker的作用:页面静态化

a)JavaEEWeb 开发存在的问题:动态网页技术创建的网页相率低,需要把这些动态网页转换成静态网页,节省程序运行时间

b)是不是把一个系统中所有的网页都进行静态化?? ?什么样的页面需要静态化?

[1]不是,因为当一个页面静态化之后,所有的写操作都会造成巨大的资源调动,造成更多资源的浪费,

所以我们只将一些修改几率不大或不会修改的页面静态化。

[2]例:电子图书、商品详情信息....

c)CMS系统(Content Manager System)? 就是把动态网页静态化

首先我们需要一个Map,其中是模板中 ${pid}的pid值与题目内容。

Map dataMap = new HashMap();

读取模板ftl内容,ftl的格式规范其实是xml,所以我们使用Configuration用于读取ftl文件。

Configuration configuration = new Configuration();

configuration.setDefaultEncoding("utf-8");

configuration.setDirectoryForTemplateLoading(new File("src\\main\\java\\ftl\\"));

获取ftl的Template。

Template t = configuration.getTemplate(templateFileName,"utf-8");

利用Map替换模板内容

Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("src\\main\\java\\word\\"+outFile+".doc"), "utf-8"),10240);

t.process(dataMap, out);

php导出成word试卷,依据word模板批量生成试卷相关推荐

  1. 依据word模板批量生成试卷

    java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...

  2. Python 自动化:根据模板批量生成含指定数据的 word 文档

    作者:一只河马h 来源:简说Python 一.需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要修改. 这时我们 ...

  3. Python自动化:根据模板批量生成含指定数据的word文档

    一.需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要修改. 这时我们会机械的重复打开.修改.保存文档等一系列操 ...

  4. 用go语言制作读取excel模板批量生成word工具

    上一篇是批量生成excel的,这一篇是批量生成word的. 这里做三点说明: 第一就是这个东西到底是干嘛用的.有时候有这样的业务场景,比如说人事部门要填写很多个word,每个word都是按照特定的模板 ...

  5. 艺赛旗(PRA)根据制式模板批量生成 word 文件

    艺赛旗 RPA8.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 请看程序运行过程: 操作 word 其实是一件很痛苦的 ...

  6. 【收藏】Python利用Excel+模板批量生成word文件

    Python利用Excel+模板批量生成word文件 最近帮朋友批量生成小区业主物业费未缴的律师函.朋友那有物业那边的表格数据,包括楼栋-房间号.业主姓名.欠费日期.欠款金额等信息.目的是需要将这些表 ...

  7. Photoshop根据图片模板批量生成动态图片

    需求:给定图片模板,在图片上面维护相关数据,把Excel表中的信息一个一个作到图中. 就技术角度而言,这样的操作并没有多少技术含量,然而却需要耗费大量的时间.如果提供的数据是上百条甚至上千条,你是否仍 ...

  8. [转]使用T4模板批量生成代码

    本文转自:http://www.cnblogs.com/K_tommy/archive/2013/04/06/T4.html 前言 之前在 "使用T4模板生成代码 - 初探" 文章 ...

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

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

最新文章

  1. 开始使用-编写你的第一个Flutter应用程序
  2. docker 主进程 日志_[docker]从一个实例,一窥docker进程管理
  3. 什么是锚文本以及锚文本连接
  4. scrapy爬虫代理——利用crawlera神器,无需再寻找代理IP
  5. 聊聊Top2计算机博士2021年就业选择
  6. 代码管理工具svn个git的简单操作
  7. [Java] 蓝桥杯ALGO-80 算法训练 整数平均值
  8. 接口测试——jemter生成HTML测试报告
  9. matlab超限像素平滑法_教程 | 不做手残党,玩转像素风LOGO的三大实用技巧!
  10. 数据库系统概述之数据库的安全性
  11. 51单片机的超声波测距仪制作教程
  12. 小米笔记本Air13.3扩充硬盘
  13. 如何在MATLAB画一个首尾相连的数据矩阵图形
  14. matlab corner 舍弃,成长就是不断地丢弃与拾取 — 读The Glass Castle《玻璃城堡》有感...
  15. 最值得看的电影,一生必看的50部电影,您看过几部影
  16. 服务器被劫持怎么修复不了,电脑DNS被劫持怎么修复?电脑dns被劫持的完美解决方法...
  17. 如何将视频中的音频提取出来
  18. MySql存储过程与函数
  19. sap的清账是什么意思_SAP清账的高手剖析
  20. 首发—openHarmonyOS鸿蒙开源平台OpenGL

热门文章

  1. 软件测试实用技术与常用模板
  2. 自律型性格分析,自律型人格的职业规划
  3. MATLAB神经网络编程(六)——BP神经网络的训练函数
  4. 使用O2OA二次开发搭建企业办公平台(十五)流程开发篇:创建报销审批流程
  5. STM32F103C8T6与ESP8266构建通信(二)
  6. stc8a-22.1184-bu 步。。。。进。、电。额。机
  7. leetcode 剑指 Offer 46. 把数字翻译成字符串
  8. 华为设备配置VRRP与NQA联动监视上行链路
  9. 网络工程师笔记——安全攻击类型
  10. 医学统计学 第八章( t 检验)