1.程序内部生成Excel表格
1.1 表头和数据分离
//表头存储格式
List<String[]> headerGoodsOrderList
String[] h1 = new String[2];
h1[0] = "id";
h1[1] = "序号";
headorder.add(h1);
String[] h2 = new String[2];
h2[0] = "orderNo";
h2[1] = "订单号";
headorder.add(h2);
//数据存储格式
List<Map<String, Object>> list
个人觉得,表头存储格式的好处在于,可以自定义一些属性,包括后续有可能的合并单元格,背景色等等,都可以预先定义,然后在公共类中或者相应的方法中进行处理
至于数据,由于想做成通用方法,所以采用了map数组结构。
public static InputStream createExcel(List<String[]> headerList, List<Map<String,Object>> dataList){
InputStream excelStream = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
//创建HSSFWorkbook对象(excel的文档对象)
HSSFWorkbook wb = new HSSFWorkbook();
// 建立新的sheet对象(excel的表单)
HSSFSheet sheet = wb.createSheet("sheet1");
// 在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
HSSFCell cell = row.createCell((short) 0);
//设置表头--h[0]英文匹配名&#x