概述
目前项目需要导入一批数据到数据库中,但是不想通过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储存批量改表明实现
最后
以上就是开心银耳汤为你收集整理的java生成xlsx文件的全部内容,希望文章能够帮你解决java生成xlsx文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复