对于struts2的自动封装来说set是从浏览器到服务端所需要的,get是从服务端到浏览器所需要的
导包poi
处理文件导入一般为批量导入
//获得文件流
HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(File));
//根据本页的名字得到页
HSSFSheet sheet=workbook.getSheet("Sheet1");
for (Row row : sheet){
//可以得到行号开头为0
int rowNum=row.getRowNum();
//根据行得到数据
String id = row.getCell(0).getStringCellValue();
String province = row.getCell(1).getStringCellValue();
String city = row.getCell(2).getStringCellValue();
String district = row.getCell(3).getStringCellValue();
String postcode = row.getCell(4).getStringCellValue();
//后面根据数据做处理,像把数据存到一个list<T>集合然后后边遍历处理
}
导出
public String exportXls() throws IOException{
//第一步:查询数据
List<T> list = T.findAll();
//第二步:使用POI将数据写到Excel文件中
//在内存中创建一个Excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
//创建一个标签页
HSSFSheet sheet = workbook.createSheet("页名字");
//创建标题行
HSSFRow headRow = sheet.createRow(0);
headRow.createCell(0).setCellValue("第一行一列");
headRow.createCell(1).setCellValue("第一行二列");
headRow.createCell(2).setCellValue("第一行三列");
for (T t: list) {
HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);
dataRow.createCell(0).setCellValue(t.getId());
dataRow.createCell(1).setCellValue(t.getStartnum());
dataRow.createCell(2).setCellValue(t.getEndnum());
}
//第三步:使用输出流进行文件下载(一个流、两个头)
String filename = "name(中文需要处理).xls";
String contentType = ServletActionContext.getServletContext().getMimeType(filename);
//输出流
ServletOutputStream out = ServletActionContext.getResponse().getOutputStream();
ServletActionContext.getResponse().setContentType(contentType);
//获取客户端浏览器类型
String agent = ServletActionContext.getRequest().getHeader("User-Agent");
filename = FileUtils.encodeDownloadFilename(filename, agent);
ServletActionContext.getResponse().setHeader("content-disposition", "attachment;filename="+filename);
workbook.write(out);
return NONE;
}