java SSM框架中使用aspose-words导出数据
来源:互联网 发布:论坛抢沙发软件 编辑:程序博客网 时间:2024/05/20 15:59
关于这次项目总结:客户要求做下载功能,就是将查询到的数据用固定的模板导出成word。
好在最终实现了功能,特此记录。
首先导入aspose-words 包
1.
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>16.8.0</version>
</dependency>
2.引入license.xml文件
3.将前台查询要下载的参数传到控制层(可以将具体逻辑写到service层)
、, @RequestMapping("doload")
@ResponseBody
public void doloadtwo(String id,HttpServletResponse response) throws IOException{
Use use =useService.findObjectById(id);
//第一步 license.xml 非正版会加水印
License license = new License();
try {
license.setLicense(UseController.class.getClassLoader().getResourceAsStream( "\\license.xml"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
String template = "D:\\demo.doc"; //可以是doc或docx
String destdoc = "D:\\demo_new.doc"; //可以是doc或docx
Document doc;
try{
//第二步 读取word模板文件,可以是.doc或者.docx
doc = new Document( template );
//第三步 向模板中填充数据
//主要调用aspose.words的邮件合并接口MailMerge
//3.1 填充单个文本域
String[] Flds = new String[]{“aaa”,"bbb","ccc"}; //文本域
String aaa=use.getaaa();
String bbb= use.getbbb();
String ccc= use.getccc();
SimpleDateFormat sdf=
new SimpleDateFormat("yyyy-MM-dd");
Object[] Vals = new Object[]{cydw,cdry,dwsx,cdyt,dh,cdnr,lyxg,cysj,jdr,pzr}; //值
doc.getMailMerge().execute(Flds, Vals); //调用接口
//3.2 填充单层循环的表格
DataTable visitTb = new DataTable("table"); //和你要打印的字段对应
visitTb.getColumns().add("a");
visitTb.getColumns().add("b");
visitTb.getColumns().add("c");
visitTb.getColumns().add("d");
visitTb.getColumns().add("e");
//向表格中填充数据
List<Message> list01= Service.findObjectById(id);
for(Message mes:list01){
DataRow row = visitTb.newRow(); //新增一行
row.set(0, mes.geta()); //根据列顺序填入数值
row.set(1, mes.getb());
row.set(2, mes.getc());
row.set(3, mes.getd());
row.set(4, mes.gete());
visitTb.getRows().add( row ); //加入此行数据
}
//对于无数据的情况,增加一行空记录
if( visitTb.getRows().getCount() == 0 ){
DataRow row = visitTb.newRow();
visitTb.getRows().add( row );
}
doc.getMailMerge().executeWithRegions( visitTb ); //调用接口
//第四步 保存新word文档
response.reset();
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode("a表.doc","UTF-8"));//设置编码格式
OutputStream out = response.getOutputStream();
doc.save(destdoc);
doc.save(out, SaveOptions.createSaveOptions(SaveFormat.DOC));
System.out.println("End...");
out.close();
}catch (Exception e) {
System.out.println(e.getMessage());
}
}
- java SSM框架中使用aspose-words导出数据
- Aspose.Words把DataTable 中的数据导出到word中
- Aspose.Words使用模板导出数据库中图片内容
- 根据word模板导出数据(Aspose.Words)
- 使用Aspose.Words for Java完成复杂Word与PDF的导出
- 使用Aspose.Words for Java完成复杂Word与PDF的导出
- Aspose.Words导出带图片人员信息到Word中
- Aspose.Words导出主从表格
- 用Aspose.Words 从Word文档中提取表格数据
- 用Aspose.Words 从Word文档中提取表格数据
- itextsharp、Aspose.Words、Aspose.Cells联合使用
- JAVA 使用Aspose.Words组件生产Word或PDF文件
- 推荐.NET使用Aspose.Words动态生成word文档数据表格(附Aspose.Words for NET 6.5 破解版下载)
- Aspose.Words使用教程大全
- Aspose.Words使用教程大全
- Aspose.Words使用教程大全
- Aspose.Words for Java 体验
- Aspose.Words for Java 体验
- libmemcached选择server的几种方法
- 2017/12/14
- Spring @component 注解的作用
- Lua基础
- 80%时间在灭火,普通工程师如何摆脱重复劳动?
- java SSM框架中使用aspose-words导出数据
- 安装并测试memcached
- 省选模拟赛[HEOI2012] Day2
- equals()和==的区别?
- Spring @Scheduled 定时任务
- dataTable 点击行弹窗
- JS中const、var、let的区别
- SQL中的DateAdd 、DateDiff 函数实现日期加减
- java 对redis 基本操作