1. jxl 模板导出下载 jxl版本 2.6.12
备注: 由于jxl自身原因在windows平台下生成的文件正常打开,linux下 打开异常 “不能读取文件”
估计在linux下jxl写excel头信息不正常,以致office无法识别。
代码:
/**
* 下载某个学员的报名表
* @return
*/
public String download(){
List<SearchFilter> filters=new ArrayList<SearchFilter>();
SearchFilter f2=new SearchFilter("identityCard", SearchFilter.Operator.EQ,this.downIdentityCard);
filters.add(f2);
Specification<Training> spec = DynamicSpecifications.bySearchFilter(filters, Training.class,true);
this.trainings=this.trainingService.findAll(spec, new Sort(new Sort.Order(Sort.Direction.ASC, "subject.id"),new Sort.Order(Sort.Direction.ASC, "id")));
String templateName="training";
String fileSeparator = System.getProperty("file.separator");
String path = ServletActionContext.getServletContext().getRealPath("template");
String filePath =path+fileSeparator+ templateName+".xls";
OutputStream os=null;
Workbook wb=null;
WritableWorkbook wwb=null;
WritableSheet wws;
try{
response.reset();// 清空输出流
response.setContentType("application/msexcel; charset=utf-8"); // 定义输出类型
response.setHeader("Content-Disposition", "attachment; filename="+ Encodes.urlEncode(templateName)+".xls");
os = response.getOutputStream();// 取得输出流
wb=Workbook.getWorkbook(new FileInputStream(distFile));
wwb = Workbook.createWorkbook(os, wb);
wws = wwb.getSheet(0);
if(Util.isNotEmpty(this.trainings)){
Training training=this.trainings.get(0);
Label A00 = (Label)wws.getWritableCell(0,0);
A00.setString(new String(training.getSubject().getTrainingName().getBytes(),"UTF-8")+"报名登记表");
Label A21 = (Label)wws.getWritableCell(2,1);
A21.setString(training.getSignNumber());
Label A22 = (Label)wws.getWritableCell(2,2);
A22.setString(training.getStudentName());
Label A23 = (Label)wws.getWritableCell(2,3);
A23.setString(DateUtil.getStringFromDate(training.getBirthday(), "yyyy-MM-dd"));
Label A24 = (Label)wws.getWritableCell(2,4);
A24.setString(DictUtils.getDictLabel(training.getBackground() + "", "continuing.background", ""));
Label A25 = (Label)wws.getWritableCell(2,5);
A25.setString(training.getGraduateSchool());
Label A26 = (Label)wws.getWritableCell(2,6);
A26.setString(training.getTeachingSubject());
Label A27 = (Label)wws.getWritableCell(2,7);
A27.setString(training.getPost());
Label A28 = (Label)wws.getWritableCell(2,8);
A28.setString(training.getEmail());
Label A29 =(Label) wws.getWritableCell(2,9);
A29.setString(training.getMobile());
Label A62 = (Label)wws.getWritableCell(6,2);
A62.setString(DictUtils.getDictLabel(training.getSex()+"","XB",""));
Label A63 = (Label)wws.getWritableCell(6,3);
A63.setString(training.getIdentityCard());
Label A64 = (Label)wws.getWritableCell(6,4);
A64.setString(DictUtils.getDictLabel(training.getDegree()+"","training.degree",""));
Label A65 = (Label)wws.getWritableCell(6,5);
A65.setString(training.getYourMajor());
Label A96 = (Label)wws.getWritableCell(9,6);
A96.setString(training.getWorkUnit());
Label A97 = (Label)wws.getWritableCell(9,7);
A97.setString(training.getTitle());
Label A98 = (Label)wws.getWritableCell(9,8);
A98.setString(training.getQq());
Label A99 = (Label)wws.getWritableCell(9,9);
A99.setString(DictUtils.getDictLabel(training.getLodging()+"","training.lodging",""));
Label A82 = (Label)wws.getWritableCell(8,2);
A82.setString(training.getNationality());
}
wwb.write();
}catch (Exception ex){
ex.printStackTrace();
}
finally {
try {
wwb.close();
wb.close();
os.flush();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
2. POI 模板导出下载 POI 版本 3.9 生成的excel 在windows ,linux下均正常打开
代码:
/**
* 下载某个学员的报名表
* @return
*/
public String download(){
List<SearchFilter> filters=new ArrayList<SearchFilter>();
SearchFilter f2=new SearchFilter("identityCard", SearchFilter.Operator.EQ,this.downIdentityCard);
filters.add(f2);
Specification<Training> spec = DynamicSpecifications.bySearchFilter(filters, Training.class,true);
this.trainings=this.trainingService.findAll(spec, new Sort(new Sort.Order(Sort.Direction.ASC, "subject.id"),new Sort.Order(Sort.Direction.ASC, "id")));
String templateName="training";
String fileSeparator = System.getProperty("file.separator");
String path = ServletActionContext.getServletContext().getRealPath("template");
String filePath =path+fileSeparator+ templateName+".xls";
String filePath2 =path+fileSeparator+ templateName+"2.xls";
OutputStream os=null;
Workbook wb=null;
Sheet wws=null;
try{
response.reset();// 清空输出流
response.setContentType("application/msexcel; charset=utf-8"); // 定义输出类型
response.setHeader("Content-Disposition", "attachment; filename="+ Encodes.urlEncode(templateName)+".xls");
InputStream in=new FileInputStream(file);
wb = new HSSFWorkbook(in);
wws = wb.getSheetAt(0);
if(Util.isNotEmpty(this.trainings)){
Training training=this.trainings.get(0);
Row row0= wws.getRow(0);
Cell cell00=row0.getCell(0);
cell00.setCellValue(training.getSubject().getTrainingName()+"报名登记表");
Row row1=wws.getRow(1);
Cell cell12=row1.getCell(2);
cell12.setCellValue(training.getSignNumber());
Row row2=wws.getRow(2);
Cell cell22=row2.getCell(2);
cell22.setCellValue(training.getStudentName());
Cell cell26=row2.getCell(6);
cell26.setCellValue(DictUtils.getDictLabel(training.getSex()+"","XB",""));
Cell cell28=row2.getCell(8);
cell28.setCellValue(training.getNationality());
Row row3=wws.getRow(3);
Cell cell32=row3.getCell(2);
cell32.setCellValue(DateUtil.getStringFromDate(training.getBirthday(), "yyyy-MM-dd"));
Cell cell36=row3.getCell(6);
cell36.setCellValue(training.getIdentityCard());
Row row4=wws.getRow(4);
Cell cell42=row4.getCell(2);
cell42.setCellValue(DictUtils.getDictLabel(training.getBackground() + "", "continuing.background", ""));
Cell cell46=row4.getCell(6);
cell46.setCellValue(DictUtils.getDictLabel(training.getDegree()+"","training.degree",""));
Row row5 =wws.getRow(5);
Cell cell52=row5.getCell(2);
cell52.setCellValue(training.getGraduateSchool());
Cell cell56=row5.getCell(6);
cell56.setCellValue(training.getYourMajor());
Row row6=wws.getRow(6);
Cell cell62=row6.getCell(2);
cell62.setCellValue(training.getTeachingSubject());
Cell cell69=row6.getCell(9);
cell69.setCellValue(training.getWorkUnit());
Row row7=wws.getRow(7);
Cell cell72=row7.getCell(2);
cell72.setCellValue(training.getPost());
Cell cell79=row7.getCell(9);
cell79.setCellValue(training.getTitle());
Row row8=wws.getRow(8);
Cell cell82=row8.getCell(2);
cell82.setCellValue(training.getEmail());
Cell cell89=row8.getCell(9);
cell89.setCellValue(training.getQq());
Row row9=wws.getRow(9);
Cell cell92=row9.getCell(2);
cell92.setCellValue(training.getMobile());
Cell cell99=row9.getCell(9);
cell99.setCellValue(DictUtils.getDictLabel(training.getLodging()+"","training.lodging",""));
}
os = response.getOutputStream();// 取得输出流
wb.write(os);
}catch (Exception ex){
ex.printStackTrace();
}
finally {
try {
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
相关推荐
java通过Excel模板导出各种Excel , 支持所有的动态数据,列表,图片, 好用的请给好评! 解压导入到eclipse就可以运行看到效果,里面有简单的例子 , 有很复杂的模板,通过模板导出数据。
除了平时简单的数据导出需求外,我们也经常...源码案例提供了模板,单个数据写入与列表数据写入以及文件导出的代码,详细的说明请参照个人博客“Excel模板导出”,源码可以让读者更加详细的了解Excel导出的过程和原理。
java基于poi通过excel模板导出excel文档,整理了一下,收个一分,以示安慰吧
会经常遇到导出业务数据的业务需求,导出Excel最常用的技术就是poi,对于简单的业务,我们可以动态的生成一个Excel文件,但对于复杂的业务,我们可以通过使用读取Excel模板的,然后往里面填充数据的方式,下载文件。...
kettle 使用excel模板导出数据。
根据excel模板动态导出数据库数据 package text; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import javax.servlet....
java生成自定义模板的excel,可以实现任何复杂格式的excel,简单易用,可以保存客户端并可在线打开,使用了jxl技术,不需要任何插件,jar包都有可以直接运行
java复杂模板excel导出例子
【JAVA】easypoi根据Excel模板导出 循环遍历合并单元格处理
poi导入、导出,支持百万级数据模板导出、合并excel。项目为spring-boot-2上开发。resource里面有模板,在junit测试类中修改为本地存在路径即可导出文件,在junit测试类中修改for循环的i可以模拟百万级数据导出。注意...
POI模板导出并下载、并提供下载Utils
这个项目源自于http://blog.csdn.net/suhenhappy/article/details/7991236,这篇博客,在此谢谢博主suhenhappy。实现了java导出数据到指定的excel模板中。
使用aspose导出Excel(根据模板导出excel)
java基于poi使用excel模板导出
根据已经配置好的Excel模板导出数据。资源是个完整项目导入就可使用(本人用的是jdk7)。
支持模板导出 ,支持分页查询 , 支持大数据量,采用SXSSFWorkbook
java使用word模板导出个人简历 a、处理word2003模板导出doc文件 b、处理word2007模板导出docx文件
博文《使用EasyPOI导出Excel模板数据(含图片)》所含源码,应众多网友要求放出来。包含测试类、导出工具类、图像工具类、Excel模板
java导出excel 集合导出Excel 导出Excel源码 模板导出Excel