首页 > 其他分享 >easyexcel 导入导出

easyexcel 导入导出

时间:2023-06-26 15:58:02浏览次数:35  
标签:String easyexcel 导出 param public 导入 new fileName response


工具类-----------------------------------------------------
public class ExcelUtil extends EasyExcelFactory {
/**
* 批量导入
* @param inputStream
* @param head
* @param readListener
*/
public static void importExcel(InputStream inputStream, Class head, ReadListener readListener){
read(inputStream,head,readListener).sheet().doRead();
}

/**
* 单sheet导出
* @param response
* @param clazz
* @param fileName
* @param list
*/
public static void exportExcel(HttpServletResponse response, Class clazz, String fileName, List<?> list){
try {
String filename = URLEncoder.encode(DateUtil.getDate(new Date(),"yyyyMMddHHmmss")+fileName+".xlsx", "UTF-8");
// 设置字符编码
response.setCharacterEncoding("utf-8");
// 设置文本内省
response.setContentType("application/vnd.ms-excel");
// 设置响应头
response.setHeader("Content-disposition", "attachment;filename="+filename);
ExcelWriter excelWriter = write(response.getOutputStream()).build();
WriteSheet writeSheet = writerSheet(0,fileName).head(clazz).build();
excelWriter.write(list, writeSheet);
excelWriter.finish();
}catch (Exception e){
throw new ServiceException("导出"+fileName+"失败");
}
}

/**
* 多sheet
* @param response
* @param fileName
* @return
*/
public static ExcelWriter exportExcels(HttpServletResponse response, String fileName){
try {
String filename = URLEncoder.encode(DateUtil.getDate(new Date(),"yyyyMMddHHmmss")+fileName+".xlsx", "UTF-8");
// 设置字符编码
response.setCharacterEncoding("utf-8");
// 设置文本内省
response.setContentType("application/vnd.ms-excel");
// 设置响应头
response.setHeader("Content-disposition", "attachment;filename="+filename);
return write(response.getOutputStream()).build();
}catch (Exception e){
throw new ServiceException("导出"+fileName+"失败");
}
}

/**
* 多sheet
* @param sheetNo
* @param sheetName
* @return
*/
public static WriteSheet createSheet(Integer sheetNo, String sheetName, Class clazz){
return writerSheet(sheetNo,sheetName).head(clazz).build();
}
}

@ExcelIgnoreUnannotated // 没加导出注解的字段,不导出(注解在类上)
@ExcelProperty(value = "发布方式", converter = BillPublishTypeConverter.class)
//注解在属性上

k v类型转换器 ()
public class BillPublishTypeConverter implements Converter<Integer> {

@Override
public Class<?> supportJavaTypeKey() {
return null;
}

@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}

@Override
public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String name = BillTypeEnum.getNameByCode(value);
return new WriteCellData<>(name);
}

}

批量导入---------------------------------------------------------------------------------------------------------------------
ExcelUtil.importExcel(multipartFile.getInputStream(), BillImportDto.class, new AnalysisEventListener<BillImportDto>() {
List<BillImportDto> billImportList = new ArrayList<>();

@Override
public void invoke(BillImportDto billImportDto, AnalysisContext analysisContext) {
String goodsUnitStr = billImportDto.getGoodsUnitStr();
billImportDto.setGoodsUnit(GoodsUnitEnum.getCodeByName(goodsUnitStr));
String isHideMoneyStr = billImportDto.getIsHideMoneyStr();
billImportDto.setIsHideMoney(FlagEnum.getCodeByName(isHideMoneyStr));
billImportList.add(billImportDto);
}

@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
BillImportHandleDto handleDto = new BillImportHandleDto();
handleDto.setList(billImportList);
handleDto.setCompanyId(authUser.getCompanyId());
handleDto.setFileName(fileName);
handleDto.setUserId(authUser.getUserId());
handleDto.setUserName(authUser.getUserName());
billImportService.importBill(handleDto);
}

标签:String,easyexcel,导出,param,public,导入,new,fileName,response
From: https://www.cnblogs.com/feizai-java/p/17505835.html

相关文章

  • 记一次SAS导出excel无法打开的问题
    问题今天遇到一个问题,SAS做好数据集导出xlsx文件后无报错但无法打开文件,EXCEL中报错"发现"XXX.xlsx"中的部分内容有问题。是否让我们尽量尝试恢复?如果您信任此工作簿的源,请单击"是""出现原因第一步查看日志,但没有发现任何的warning和error信息,note信息也没有明显的问题,于是......
  • fastadmin 一键操作注意事项,导入excel注意事项
    生成文件控制器名cms/Xxx模型名cms/Xxx生成菜单找到控制器,一键生成导入的注意事项1.另存为csv格式用csv导2.字段名,对应上3.可以在import控制器里,进行数据校验4.安装fileinfo扩展5.关于文本和科学计数法的处理......
  • SpringBoot + Ant Design Vue实现数据导出功能
    (SpringBoot+AntDesignVue实现数据导出功能)一、需求以xlsx格式导出所选表格中的内容要求进行分级设置表头颜色。二、前端代码实现2.1显示实现首先我们需要添加一个用于到导出的按钮上去,像这样的:<a-button@click="exportBatchlistVerify">批量导出</a-button>至......
  • 【源码阅读】5. Broker Load 导入任务的执行流程
    load_stmt::=KW_LOADKW_LABELjob_label:labelLPARENdata_desc_list:dataDescListRPARENopt_broker:brokeropt_properties:properties{:RESULT=newLoadStmt(label,dataDescList,broker,properties);:}|KW_LOADKW_LAB......
  • 【源码阅读】4. Stream Load 导入任务的执行流程
     FE起手路由在访问curl--location-trusted-uroot:-Ttest.csv-H"column_separator:,"http://127.0.0.1:8030/api/demo/example_tbl/_stream_load时,FE如下操作:● 检查用户名密码● 检查权限● 随机选择一个BE,Redirect到这个BE上 BE_stream_load的handler......
  • Linux 导入
    Linux导入大纲发展历史系统目录结构Shell之Bash常用命令分享发展历史Unix和LinuxUnix操作系统在20世纪60年代构思完成并实现,并在1970年首次发布。由我们的C语言之父,丹尼斯·里奇和肯·汤普逊自行开发。它因容易获取与可移植性高而广泛被学术机构和工商企业采用、......
  • 记录一个在写项目中遇到的Maven依赖无法导入的问题
    记录一个在写项目中遇到的Maven依赖无法导入的问题项目是一个父项目做依赖管理,三个子项目,今天遇到一个问题:子项目中导入的依赖,怎么都导入不进去,maven仓库中已经有了,idea提示也没有问题,如图:可以看到,idea提示是正常的,依赖都是继承自父项目,但是左边的依赖中没有我导入的这些依赖,......
  • jupyter中把ipynb文件导出为pdf
     1、安装Python包,其中6.4.4是根据提示确认的必须要大于等于6.4.4pip3installnbconvert==6.4.42、安装Inkscape,官网地址:https://inkscape.org/zh-hans/?switchlang=zh-hans3、安装pandoc,官网地址:https://pandoc.org/installing.html4、安装Tex,可参考:https://nbconvert.re......
  • postgresql 导入数据库表并重设自增属性的操作
    postgresql使用navicat软件导出数据库表,在导入会数据库的操作。postgresql的自增字段是通过序列sequence来实现的。1、先删除导出的数据库表中的自增属性2、导入数据库表之后,需要创建序列。注:一般序列名称由数据表名+主键字段+seq组成(通常情况下主键字段即为自增字段),如下......
  • 导入表注入初步介绍
    目录初识PE文件格式DOSDosheaderDosStub(存根)NTHeaderSignatureFileHeaderOptionalHeaderSectionTableImportTableIMAGE_IMPORT_BY_NAME开始我们注入导入表的旅程吧初识PE文件格式DOSDosheader比较重要的有e_magic和e_lfanew两个属性。其中e_magic属性用来判断这个文......