java生成xlsx文件

目前项目需要导入一批数据到数据库中,但是不想通过crud写入,想到写入到一个xlsx文件当中,在通过navicat 导入到数据库中,把sql 储存出来即可,我这里使用的 apache.poi  来生成xlsx文件以下是详细代码与讲解。

首先我在本地创建一个放xlsx的物理路径

        File tmpFile = new File("D:/file/" + UUIDUtil.get16UUID() + "detail.xlsx");
        Workbook workbook = null;
        workbook = new XSSFWorkbook();//创建Workbook对象(excel的文档对象)
        Sheet sheet1 = workbook.createSheet("Sheet1");// 建建sheet对象(excel的表单)
        // 设置单元格字体
        Font headerFont = workbook.createFont(); // 字体
        headerFont.setFontHeightInPoints((short) 14);
        headerFont.setFontName("黑体");
        // 设置单元格边框及颜色
        CellStyle style = workbook.createCellStyle();
        style.setBorderBottom((short) 1);
        style.setBorderLeft((short) 1);
        style.setBorderRight((short) 1);
        style.setBorderTop((short) 1);
        style.setWrapText(true);

写入xlsx 的行名

        Row row = sheet1.createRow(0);
        row.createCell(0).setCellValue("region_code");
        row.createCell(1).setCellValue("region_name");
        row.createCell(2).setCellValue("region_level");
        row.createCell(3).setCellValue("parent_region_code");
        row.createCell(4).setCellValue("managecom");
        JSONArray parse = JSONArray.parseArray(A);

这里这是我的数据层处理

           int cc = 1;
        for (int i = 0; i < parse.size(); i++) {
            JSONObject check = parse.getJSONObject(i);
            Row row1 = sheet1.createRow(cc);
            row1.createCell(0).setCellValue(check.getString("value"));
            row1.createCell(1).setCellValue(check.getString("label"));
            row1.createCell(2).setCellValue("3");
            row1.createCell(3).setCellValue("0");
            row1.createCell(4).setCellValue(check.getString("id"));
            cc++;
            JSONArray children = check.getJSONArray("children");
            for (int j = 0; j <children.size() ; j++) {
                JSONObject jsonObject = children.getJSONObject(j);
                Row rows = sheet1.createRow(cc);
                rows.createCell(0).setCellValue(jsonObject.getString("value"));
                rows.createCell(1).setCellValue(jsonObject.getString("label"));
                rows.createCell(2).setCellValue("4");
                rows.createCell(3).setCellValue(check.getString("value"));
                rows.createCell(4).setCellValue(check.getString("id")+"01");
                cc++;
            }
        }

最后通过文件流写入到 文件中 在关闭文件

   try {
            FileOutputStream outputStreamExcel = new FileOutputStream(tmpFile);
            workbook.write(outputStreamExcel);
            outputStreamExcel.flush();
            outputStreamExcel.close();
        } catch (Exception e) {
        }

这样我的报文就写入到了 我的指定文件。

最后把文件通过navicat 的导入功能把数据导入进数据库,把sql储存批量改表明实现

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值