Java 实现数据库导出Word
1、导入依赖
<!--使用POI读取文件--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><!--text--><dependency><groupId>org.eclipse.birt.runtime.3_7_1</groupId><artifactId>com.lowagie.text</artifactId><version>2.1.7</version></dependency>
2、设计所需要导出数据的表结构
3、编写对应表的实体类
我这里ProBaseEntity是公司框架的接口,可以不需要继承
/*** TbHkhb:航空航班表* @author zyw* @since 2022-03-18 10:31:24*/
@Data
@ApiModel(value="航空航班表,对应表tb_hkhb",description="适用于新增和修改页面传参")
public class TbHkhb extends ProBaseEntity<TbHkhb> {private static final long serialVersionUID = 1L;/*** 主键ID*/@ApiModelProperty(value="id")private String id;/*** 航班时间*/@ApiModelProperty(value="航班时间")@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")private java.util.Date hbsj;/*** 出发地点*/@ApiModelProperty(value="出发地点")private String cfdd;/*** 终点站*/@ApiModelProperty(value="终点站")private String zdz;/*** 航班号*/@ApiModelProperty(value="航班号")private String hbh;/*** 航空公司*/@ApiModelProperty(value="航空公司")private String hkgs;/*** 乘客数量*/@ApiModelProperty(value="乘客数量")private String cksl;/*** 座位数量*/@ApiModelProperty(value="座位数量")private String zwsl;}
4、编写导出word的业务逻辑
创建word文档 步骤:1,建立文档2,创建一个书写器3,打开文档4,向文档中写入数据5,关闭文档
这里参数
public String createDocument(String path)
path是指所需要导出的文件路径,可以在前段让用户选择想要导出的位置
/*** 创建word文档 步骤:* 1,建立文档* 2,创建一个书写器* 3,打开文档* 4,向文档中写入数据* 5,关闭文档*//*** @方法名称: createDocument* @实现功能: 导出航空航班表Word文件 TODO: 方法入参根据页面对象设置* @return java.lang.String* @create by zyw at 2022-03-22 14:46:31**/public String createDocument(String path) {// 创建word文档,并设置纸张的大小Document document = new Document(PageSize.A4);try {RtfWriter2.getInstance(document,new FileOutputStream(path+"/航班数据采集表.doc"));document.open();//设置合同头Paragraph ph = new Paragraph();Font f = new Font();Paragraph p = new Paragraph("航班数据采集表",new Font(Font.NORMAL, 18, Font.BOLDITALIC, new Color(0, 0, 0)));p.setAlignment(1);document.add(p);ph.setFont(f);// 设置中文字体BaseFont bfFont =BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font chinaFont = new Font();/** 创建表格*/Table table = new Table(7);table.setBorderWidth(1);table.setBorderColor(Color.BLACK);table.setPadding(0);table.setSpacing(0);// 表格的主体table.addCell("航班时间");table.addCell("出发地点");table.addCell("终点站");table.addCell("航班号");table.addCell("航空公司");table.addCell("乘客数量");table.addCell("座位数量");TbHkhb tbHkhb = new TbHkhb();List<TbHkhb> list = dao.findList(tbHkhb);for (int i = 0; i < list.size(); i++) {table.addCell(new Paragraph(simpleDateFormat.format(list.get(i).getHbsj())));table.addCell(new Paragraph(list.get(i).getCfdd()));table.addCell(new Paragraph(list.get(i).getZdz()));table.addCell(new Paragraph(list.get(i).getHbh()));table.addCell(new Paragraph(list.get(i).getHkgs()));table.addCell(new Paragraph(list.get(i).getCksl()));table.addCell(new Paragraph(list.get(i).getZwsl()));}document.add(table);document.close();} catch (FileNotFoundException e) {e.printStackTrace();try {throw new Exception("另一个程序正在使用此文件,进程无法访问。");} catch (Exception ex) {ex.printStackTrace();return "另一个程序正在使用此文件,进程无法访问。";}} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (com.itextpdf.text.DocumentException e) {e.printStackTrace();}return "Word文件生成成功...";}
5、编写调用接口的控制层
/*** @方法名称: createDocument* @实现功能: 导出航空航班表Word文件 TODO: 方法入参根据页面对象设置* @return java.lang.String* @create by zyw at 2022-03-22 14:49:31**/@ApiOperation(value="导出值班值守表Word文件",notes="返回Word文件",response = String.class)@PostMapping(value = "/createDocument")public String createDocument(@RequestParam @ApiParam(name="path",value="导出路径",required=true)String path){try {return buildResultStr(buildSuccessResultData(service.createDocument(path)));}catch (RuntimeException e){logError(log, e);return buildResultStr(buildErrorResultData(e));}}
6、效果图
数据库:
导出后的Word文档:
Java 实现数据库导出Word相关推荐
- Java使用freemarker导出word试卷
使用了freemarker模板填充占位符的方式来生成word文档,支持跨平台. Java导出Word的五种方式 制作Word模板 将制作好的Word模板.docx另存为.xml格式,修改xml文件的内 ...
- java使用freemarker导出word标题失效问题
java使用freemarker导出word标题失效问题 如图,导出格式错误切目录不可折叠 另存为xml发现 六级标题变成了其他级别:<w:pStyle w:val="60" ...
- java用poi导出word,Java使用POI导出Word文档的操作教程,poiword
Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...
- java导出word表格_使用PowerDesigner16.5 逆向数据库 导出word文档
在上一篇<使用PowerDesigner16.5 逆向数据库生产表结构或导出word文档二>中,我们学会了使用PowerDesigner16.5怎么连接数据库,逆向生成表结构.有时候,我们 ...
- Java用freemarker导出word
概述 最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 详细 代码下载:http://w ...
- Java用Freemarker导出word 内容换行
最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板 ...
- java使用XDocReport导出word
使用XDocReport 导出word 效果 word编辑器 案例word模板 模板制作 解决图片不存在时, "现场照片" 列被隐藏问题 依赖 返回数据对象 DailyRecord ...
- Java使用XDocReport导出Word(带图片)
XDocReport导出Word 简介 示例 实现方式 Maven依赖 Word模板制作 Word模板文字(四步) Word模板图片(五步) 具体实现 注意事项 结论 简介 这次的内容是关于Java实 ...
- Java通过IText导出word和pdf
最近做的项目中需要用到导出word和pdf的功能(还有图表),在网上找了很多资料,最后敲定用了IText组件,下面是我项目中的一个Demo,记录了一下,希望对需要的人有帮助. 相关jar包下载地址:h ...
最新文章
- 刻意练习:LeetCode实战 -- Task15. 有效的括号
- 原生ajax XMLHTTPRequest()
- git分支指的是_你一定知道的Git分支模型
- linux ssh 远程登陆 报错 software caused connection abort 解决方法
- go语言支持继承吗_Go语言的结构体嵌入为什么不算继承?
- 如何改变 Python 中线程的执行顺序
- 一个工作一年的程序员的告白
- 原来国家的名字可以如此的浪漫~~!
- 排序算法 快速排序 python 0913
- LRU算法java实现
- trados 2007 2009 共用一个LICENSE服务器
- mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
- 增加ssh无密码信任连接的安全性
- 《高质量程序设计指南---C++/C语言》 下载
- 介绍几个比较出名的编程acm题库
- Java项目:springboot超市进销存管理系统
- IOT语义互操作性之语义
- SCI入门级知识(带你了解SCI期刊)
- 服务器域名绑定公网IP地址
- Jzoj P6305 最小值___单调栈优化dp