使用java读取excel表格,java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...

 2023-09-22 阅读 13 评论 0

摘要:非异步方法/*** 使用Java导出Excel表格并由浏览器直接下载——基于POI框架*使用java读取excel表格?* @param response* @return* @throws IllegalAccessException* @throws IOException*/java生成pdf表格?@RequestMapping(value = "/export2

非异步方法

/**

* 使用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;

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/82671.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息