微笑迎接明天 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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)