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的业务逻辑

  1.  创建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相关推荐

  1. Java使用freemarker导出word试卷

    使用了freemarker模板填充占位符的方式来生成word文档,支持跨平台. Java导出Word的五种方式 制作Word模板 将制作好的Word模板.docx另存为.xml格式,修改xml文件的内 ...

  2. java使用freemarker导出word标题失效问题

    java使用freemarker导出word标题失效问题 如图,导出格式错误切目录不可折叠 另存为xml发现 六级标题变成了其他级别:<w:pStyle w:val="60" ...

  3. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

  4. java导出word表格_使用PowerDesigner16.5 逆向数据库 导出word文档

    在上一篇<使用PowerDesigner16.5 逆向数据库生产表结构或导出word文档二>中,我们学会了使用PowerDesigner16.5怎么连接数据库,逆向生成表结构.有时候,我们 ...

  5. Java用freemarker导出word

    概述 最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 详细 代码下载:http://w ...

  6. Java用Freemarker导出word 内容换行

    最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板 ...

  7. java使用XDocReport导出word

    使用XDocReport 导出word 效果 word编辑器 案例word模板 模板制作 解决图片不存在时, "现场照片" 列被隐藏问题 依赖 返回数据对象 DailyRecord ...

  8. Java使用XDocReport导出Word(带图片)

    XDocReport导出Word 简介 示例 实现方式 Maven依赖 Word模板制作 Word模板文字(四步) Word模板图片(五步) 具体实现 注意事项 结论 简介 这次的内容是关于Java实 ...

  9. Java通过IText导出word和pdf

    最近做的项目中需要用到导出word和pdf的功能(还有图表),在网上找了很多资料,最后敲定用了IText组件,下面是我项目中的一个Demo,记录了一下,希望对需要的人有帮助. 相关jar包下载地址:h ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task15. 有效的括号
  2. 原生ajax XMLHTTPRequest()
  3. git分支指的是_你一定知道的Git分支模型
  4. linux ssh 远程登陆 报错 software caused connection abort 解决方法
  5. go语言支持继承吗_Go语言的结构体嵌入为什么不算继承?
  6. 如何改变 Python 中线程的执行顺序
  7. 一个工作一年的程序员的告白
  8. 原来国家的名字可以如此的浪漫~~!
  9. 排序算法 快速排序 python 0913
  10. LRU算法java实现
  11. trados 2007 2009 共用一个LICENSE服务器
  12. mysql 两张大表关联_详解mysql生产环境如何快速有效的删除大表,附实验说明
  13. 增加ssh无密码信任连接的安全性
  14. 《高质量程序设计指南---C++/C语言》 下载
  15. 介绍几个比较出名的编程acm题库
  16. Java项目:springboot超市进销存管理系统
  17. IOT语义互操作性之语义
  18. SCI入门级知识(带你了解SCI期刊)
  19. 服务器域名绑定公网IP地址
  20. Jzoj P6305 最小值___单调栈优化dp

热门文章

  1. Java工作引擎Jflow表单从表Excel格式数据导入
  2. mybatis批量添加
  3. 天地图web端 通过H5 获取详细定位信息 (模板源码)
  4. 在ubuntu中安装微软雅黑字体
  5. 《Java EE企业级应用开发教程(SSM)》练习题答案---第一章Spring的基本应用(仅供参考)
  6. Spring Cloud Alibaba 实战(五)Zuul篇
  7. ThinkPad电脑的命名规则
  8. 2018年支付宝推荐赏金活动介绍
  9. iPhone 5毫无新意——Apple似乎在吃老本
  10. linux 安装Redis