博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HSSFWorkbook 创建Excel文件
阅读量:6261 次
发布时间:2019-06-22

本文共 5264 字,大约阅读时间需要 17 分钟。

1.项目代码实例

  

@Override    public OutputStream exportAucLotData(String id, String password, OutputStream out) throws Exception {        if (id == null)            return null;        if (StringUtils.isBlank(password))            password = "123456";        if (out == null)            return null;        AucLot lot=    aucLotRepository.findOne(id);        if(lot==null)            return null;        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");        List sheet1 =sheet1Data(lot,sdf);//标题下面的数据         List
ps=aucPriceRepository.findAllByAucLotIdOrderByIdDesc(lot.id()); List
sheet2 =sheet2Data(sdf, ps); List
bs=aucBrandRepository.findAllByAucLotIdOrderByCrtTimeDesc(lot.id()); List
sheet3 = sheet3Data(sdf, bs); logger.debug(sheet1.toString()); logger.debug(sheet2.toString()); logger.debug(sheet3.toString()); HSSFWorkbook book = new HSSFWorkbook(); book = createExcel(book, sheet1Heads(), sheet1Fileds(), sheet1, "拍卖信息"); book = createExcel(book, sheet2Heads(), sheet2Fileds(), sheet2, "出价信息"); book = createExcel(book, sheet3Heads(), sheet3Fileds(), sheet3, "报名信息"); File tempFile=File.createTempFile("temp",".xls"); tempFile.deleteOnExit(); OutputStream tempout = new FileOutputStream(tempFile); book.write(tempout);     //下载Excel ,打开的时候进行加密处理 EncryptExcellUtil.encrypt(tempFile,password, out); logger.debug("-----excel 文档加密 ok-----------"); return out; }

 

 

2.设置表格的题头

private static List
sheet1Heads(){ List
heads = new ArrayList
(); heads.add("标的内部代码"); heads.add("拍卖名称"); heads.add("标的大类名称"); heads.add("拍卖开始时间"); heads.add("拍卖结束时间"); heads.add("保证金"); heads.add("拍卖模式"); heads.add("上拍阶段"); heads.add("拍卖状态"); heads.add("发布状态"); heads.add("所属机构"); heads.add("城市名称"); return heads; }

 

3.获取题头下面对应的数据

private  List   sheet1Data(AucLot lot,SimpleDateFormat sdf){        List data = new ArrayList();        Map
map = new HashMap
(); List
key = sheet1Fileds(); map.put(key.get(0), lot.goodsNo());// goodsNo map.put(key.get(1), lot.goodsName());// goodsName map.put(key.get(2), lot.firstTypeName());// firstTypeName map.put(key.get(3), (lot.startTime() != null) ? sdf.format(lot.startTime()) : "");// startTime map.put(key.get(4), (lot.endTime() != null) ? sdf.format(lot.endTime()) : "");// endTime map.put(key.get(5), (lot.bail() != null) ? lot.bail().toString() : "");// bail map.put(key.get(6), (lot.type() == 1) ? "网络拍" : (lot.type() == 2 ? "同步拍" : "")); map.put(key.get(7), stage(lot.stage()));// stage map.put(key.get(8), status(lot.status()));// status map.put(key.get(9), (lot.isPublished() == 1) ? "未发布" : "已发布");// isPublished map.put(key.get(10), agencyName(lot.agencyId()));// agencyId to name map.put(key.get(11), lot.cityName());// cityName data.add(map); return data; }

 

4.???

private static List
sheet1Fileds(){ List
fileds = new ArrayList
(); fileds.add("goodsNo"); fileds.add("goodsName"); fileds.add("firstTypeName"); fileds.add("startTime"); fileds.add("endTime"); fileds.add("bail"); fileds.add("type"); fileds.add("stage"); fileds.add("status"); fileds.add("isPublished"); fileds.add("agencyId"); fileds.add("cityName"); return fileds; }

 

5.创建Excel表格对象

public  HSSFWorkbook createExcel(HSSFWorkbook book,            List
heads, List
fieldList, List
dataList,String sheettName) { HSSFWorkbook workbook = book; if(workbook ==null) workbook= new HSSFWorkbook(); if(sheettName==null||"".equals(sheettName)) sheettName="sheet"+Math.random(); HSSFSheet sheet = workbook.createSheet(sheettName); // sheet.setDefaultColumnWidth(20); sheet.setDefaultRowHeightInPoints(20); // 在索引0的位置创建行(最顶端的行) HSSFRow row = sheet.createRow(0); HSSFCell cell=null; //创建表格第一行的标题 for (int i = 0; i < heads.size(); i++) { // 在索引0的位置创建单元格(左上端) cell = row.createCell(i); // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue(heads.get(i)); }     //循环赋值 for (int n = 0; n < dataList.size(); n++) { // 在索引1的位置创建行(最顶端的行) HSSFRow row_value = sheet.createRow(n + 1); Map
dataMap =(Map
)dataList.get(n); HSSFCell cell_v=null; for (int i = 0; i < fieldList.size(); i++) { // 在索引0的位置创建单元格(左上端) cell_v = row_value.createCell(i); // 定义单元格为字符串类型 cell_v.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell_v.setCellValue(dataMap.get(fieldList.get(i))); } } return workbook ; }

 

转载地址:http://lizpa.baihongyu.com/

你可能感兴趣的文章
vue 2.0 开发实践总结之疑难篇
查看>>
iOS开发中的错误整理,(百思项目,指示器位置)设置控件尺寸和点坐标,先设置尺寸,再设置点坐标...
查看>>
(C/C++学习)7.数组及其访问方式
查看>>
LeetCode——Intersection of Two Linked Lists
查看>>
对拍——我目前可以找到的最简写法
查看>>
js之广告弹出自动关闭
查看>>
axios请求requestBody和formData
查看>>
PSQL_标准API和Interface基本的用法和比较(概念)
查看>>
网站目录
查看>>
APUE-文件和目录(七)符号链接
查看>>
CSS 简介
查看>>
System Verilog基础(二)
查看>>
2018/11/26 Samba服务器配置
查看>>
2018/12/08 PAT刷题 L1-034 点赞
查看>>
如何改变TextBox.PassWordChar的值 转
查看>>
css的工作原理
查看>>
【pip】的安装
查看>>
内存泄漏及其检测工具
查看>>
QT Model based vs Item based
查看>>
[Leetcode]669 Trim a Binary Search Tree
查看>>