微笑迎接明天 2017-09-29 02:43 采纳率: 0%
浏览 1279

java导出EXL行合并单元格

![这是需要导出的数据格式,一个出库单下有个商品数组
@RequestMapping(value = "exportExl")
public void exportExl(HttpServletRequest request, HttpServletResponse response) {

    OutputStream os = null;
    try {
        String mimetype = "application/x-msdownload";
        response.setContentType(mimetype);
        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd-HH-mm");
        String downFileName = "出库明细" + sdf.format(new Date()) + ".xlsx";
        String inlineType = "attachment"; // 是否内联附件
        response.setHeader("Content-Disposition",
                inlineType + ";filename=\"" + new String(downFileName.getBytes(), "ISO8859-1") + "\"");
        // 
        PageData pd = this.getPageData();
        String listPageStr = service.listPageHistoryStockOut(pd.toJsonString());
        JSONObject listObject = JSON.parseObject(listPageStr);
        List<Object> list = listObject.getJSONArray("returnData");

        // 导出Excel
        os = response.getOutputStream();
        XSSFWorkbook wb = new XSSFWorkbook();
        Sheet sheet = wb.createSheet("sheet1");
        XSSFCellStyle s = wb.createCellStyle();// 样式对象 
        s.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
        s.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
        String[] title = { "出库编号", "出库类型","出库时间","供应商","仓库","客户/申请人","承运方","车牌号/快递单号" };
        String[] propertyName = { "STOCKCODE", "ORDER_TYPE","CREATE_DATE","SUPPLIER_NAME","STORE_NAME","CUSTOMER_NAME","CARRIER","CAR_NUMBER"};
        sheet.createRow(0);
        Row xssfR = sheet.createRow(0);
        for (int j = 0; j < title.length; j++) {
            Cell xssfCell = xssfR.createCell(j);
            xssfCell.setCellValue(title[j]);
            xssfCell.setCellStyle(s);
        }

        for (int i = 0; i < list.size(); i++) {
            Map<String, Object> m = (Map<String, Object>) list.get(i);
            // sheet.addMergedRegion(new CellRangeAddress(1, 3, 0, 0)); 
            // 创建Excel的sheet的一行
            int r = i + 1;
            Row xssfRow = sheet.createRow(r);
            for (int j = 0; j < propertyName.length; j++) {
                    Object cell;
                    cell = m.get(propertyName[j]);
                    // 创建一个Excel的单元格
                    Cell xssfCell = xssfRow.createCell(j);
                    if (cell != null) {
                        xssfCell.setCellValue(cell.toString());
                    } else {
                        xssfCell.setCellValue("");
                    }
                }
            }
        //}
        // 自动列宽
        sheet.autoSizeColumn((short) 0);
        wb.write(os);
    } catch (UnsupportedEncodingException e) {
    } catch (IOException e) {
    } finally {
        try {
            os.close();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


}

这是数据格式
returnData": [
{
"CARRIER": "妮妮",
"CAR_NUMBER": "5555",
"CREATE_DATE": "2017-09-28",
"CUSTOMER_NAME": "冬冬",
"ID": "ACF4B1F71C2405948CF1D6AC75DD5074",
"ORDER_TYPE": "0",
"ROW_ID": 1,
"STOCKCODE": "CK10035721197",
"STORE_NAME": "蛋仓",
"SUPPLIER_NAME": "鸭蛋供应商",
"skuInfoList": [
{
"GIFT_NUM": 4,
"GOODS_PRICE": 54.21,
"ID": "ACF4B1F71C2405948CF1D6AC75DD5074",
"METER_NAME": "根",
"OUT_NUM": 4,
"PACKAGE_SPEC": "2",
"PRODUCT_DENO": "b10302c7b7d840548a4f751c7e03d61e",
"PRODUCT_NAME": "华禽 鸡蛋 2",
"TOTALWEIGHT": 160
}
],
"trCount": 1
},

](https://img-ask.csdn.net/upload/201709/29/1506652822_686478.png)

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-09-30 20:27
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮