引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.15</version>
</dependency>
文件导入
public void savelist(
String filepath,
String keyname
){
ExcelReader reader = ExcelUtil.getReader(FileUtil.file(filepath), 0);
List<Map<String, Object>> sheetRowsMap = reader.readAll();
String host = "192.168.1.80";
int port = 6379;
Jedis jedis = new Jedis(host, port);
for (Map<String, Object> stringObjectMap : sheetRowsMap) {
TemplateVo vo = JwfsStdPopRealPopNewTemplateVo.builder()
.addressDetail(String.valueOf(stringObjectMap.get("户籍地址(校验后)")))
.popName(String.valueOf(stringObjectMap.get("姓名")))
.popPhone(String.valueOf(stringObjectMap.get("电话")))
.build();
log.info(vo);
}
}
文件导出
public static void export(List<JwfsStdPopRealPopNewTemplateVo> data, String path, String fileName, JwfsStdPopRealPopNewTemplateVo excelData) throws IOException {
log.info("开始导出");
ExcelWriter writer = ExcelUtil.getWriter();
List<Map> fieldAnnotation = getFieldAnnotation(excelData);
for(Map<String,String> map:fieldAnnotation){
for(String key:map.keySet()){
String value = map.get(key);
writer.addHeaderAlias(key,value);
}
}
//第1列40px宽
//writer.setColumnWidth(0, 40);
//第2列15px 宽
//writer.setColumnWidth(1, 15);
//对齐方式,水平左对齐,垂直中间对齐
writer.getStyleSet().setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
//标题样式
CellStyle headCellStyle = writer.getHeadCellStyle();
//设置背景色
headCellStyle.setFillForegroundColor(IndexedColors.WHITE1.getIndex());
//必须设置 否则背景色不生效
headCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//创建标题字体
Font headFont = writer.createFont();
headFont.setFontName("宋体");
//大小
headFont.setFontHeightInPoints((short) 11);
//加粗
headFont.setBold(true);
headCellStyle.setFont(headFont);
writer.setColumnWidth(-1, 30);
writer.setRowHeight(-1,20);
//保存路径
FileOutputStream output = new FileOutputStream(path+fileName+".xls");
// 一次性写出内容
writer.write(data);
//自适应列宽
int columnCount = writer.getColumnCount();
for (int i = 0; i < columnCount; ++i) {
double width = SheetUtil.getColumnWidth(writer.getSheet(), i, false);
if (width != -1.0D) {
width *= 256.0D;
//此处可以适当调整,调整列空白处宽度
width += 220D;
writer.setColumnWidth(i, Math.toIntExact(Math.round(width / 256D)));
}
}
writer.flush(output,true);
// 关闭writer,释放内存
writer.close();
}
JwfsStdPopRealPopNewTemplateVo jwfsStdPopRealPopNewTemplateVo = JwfsStdPopRealPopNewTemplateVo.builder().build();
export(
list,
"C:\\Users\\Administrator\\Desktop\\1\\",
filename,
jwfsStdPopRealPopNewTemplateVo
);