非异步方法
/**
* 使用Java导出Excel表格并由浏览器直接下载——基于POI框架
*
使用java读取excel表格?* @param response
* @return
* @throws IllegalAccessException
* @throws IOException
*/
java生成pdf表格?@RequestMapping(value = "/export2", method = RequestMethod.GET)
public ResponseObj export2(HttpServletResponse response) throws IllegalAccessException, IOException {
//文件名
String fileName = "活动报名情况一览表";
//sheet名
java实现打印功能?String sheetName = "sheet";
List titleList = new ArrayList<>();
titleList.add("name");
titleList.add("address");
List dataList = new ArrayList<>();
Java导出、dataList.add(new Student("张三", "连云港"));
dataList.add(new Student("李四", "连云港"));
// //如果我不想设置任何列为下拉选项,那我调用的时候将最后一个参数传入null即可。如果想设置某一列或某几列为下拉选项,那我调用的时候只需要这样(省略其他代码):
// String[] params = new String[]{"是","否"};
// //从第一行开始,到最后一行结束,设置第4列为下拉选项
eclipse导出java文件。// OutExcelQuery outExcelQuery = new OutExcelQuery(1,-1,3,3,params);
OutExcelQuery outExcelQuery = null;
HSSFWorkbook workbook = service.createExcel(sheetName, titleList, dataList, outExcelQuery);
//输出Excel文件
OutputStream output = response.getOutputStream();
java导出文件,response.reset();
//中文名称要进行编码处理
response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("GB2312"),
"ISO-8859-1") + ".xls");
response.setContentType("application/x-xls");
在浏览器显示出excel类表格、workbook.write(output);
output.close();
return new ResponseObj<>(true, null);
}
/**
js导出excel表格?* 生成Excel表格
* @param sheetName sheet名称
* @param titleList 表头列表
* @param dataList 数据列表
* @param outExcelQuery 下拉选项设置
java读取excel文件。* @return HSSFWorkbook对象
* */
public static HSSFWorkbook createExcel(String sheetName, List titleList,
List dataList, OutExcelQuery outExcelQuery) throws IllegalAccessException {
//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
//创建sheet对象(excel的表单)
HSSFSheet sheet=wb.createSheet(sheetName);
//在sheet里创建第一行,这里即是表头
HSSFRow rowTitle=sheet.createRow(0);
//写入表头的每一个列
for (int i = 0; i < titleList.size(); i++) {
//创建单元格
rowTitle.createCell(i).setCellValue(titleList.get(i));
}
int count = 0;
//写入每一行的记录
if (dataList!=null){
for (int i = 0; i < dataList.size(); i++) {
count++;
//创建新的一行,递增
HSSFRow rowData = sheet.createRow(i+1);
//通过反射,获取POJO对象
Class cl = dataList.get(i).getClass();
//获取类的所有字段
Field[] fields = cl.getDeclaredFields();
for (int j = 0; j < titleList.size(); j++) {
//设置字段可见,否则会报错,禁止访问
fields[j].setAccessible(true);
//创建单元格
rowData.createCell(j).setCellValue((String) fields[j].get(dataList.get(i)));
}
}
}
//如果开启了下拉选项
if (outExcelQuery!=null){
//如果表格中的记录数不是0
if (count!=0){
// 获取下拉列表数据
String[] strs = outExcelQuery.getParams();
//设置哪些行的哪些列为下拉选项
CellRangeAddressList rangeList =
new CellRangeAddressList(outExcelQuery.getRowStart(),
//结束行为-1时,说明设置所有行
outExcelQuery.getRowEnd()==-1?count:outExcelQuery.getRowEnd(),
outExcelQuery.getColStart(),outExcelQuery.getColEnd());
//绑定下拉数据
DVConstraint constraint = DVConstraint.createExplicitListConstraint(strs);
//绑定两者的关系
HSSFDataValidation dataValidation = new HSSFDataValidation(rangeList,constraint);
//添加到sheet中
sheet.addValidationData(dataValidation);
}
}
return wb;
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态