目前项目需要导入一批数据到数据库中,但是不想通过crud写入,想到写入到一个xlsx文件当中,在通过navicat 导入到数据库中,把sql 储存出来即可,我这里使用的 apache.poi 来生成xlsx文件以下是详细代码与讲解。
首先我在本地创建一个放xlsx的物理路径
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15File 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 的行名
复制代码
1
2
3
4
5
6
7Row 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);
这里这是我的数据层处理
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22int 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++; } }
最后通过文件流写入到 文件中 在关闭文件
复制代码
1
2
3
4
5
6
7try { FileOutputStream outputStreamExcel = new FileOutputStream(tmpFile); workbook.write(outputStreamExcel); outputStreamExcel.flush(); outputStreamExcel.close(); } catch (Exception e) { }
这样我的报文就写入到了 我的指定文件。
最后把文件通过navicat 的导入功能把数据导入进数据库,把sql储存批量改表明实现
最后
以上就是开心银耳汤最近收集整理的关于java生成xlsx文件的全部内容,更多相关java生成xlsx文件内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复