java apache POI xls的导入与导出

对于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;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值