网站后台如何更新,建视频网站的费用,网站建设规划书,徐州网站建设xzqjwl背景 若依使用的是apach poi并在此基础上进行封装apach poi的原生的api是很复杂的#xff0c;若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的#xff0c;依赖于文件大小的限制在此前提下#xff0c;如果没法满足客户的需求#xff08;超大型文件的上传若依简化了了此操作apach poi的上传速率和下载速率都是没有优化的依赖于文件大小的限制在此前提下如果没法满足客户的需求超大型文件的上传可以集成easyexcel 对比 easyexcel 上手更加容易甚至能够兼容apach poi能够处理大型的excel但是不能处理其他类型的文件apach poi能够处理所有的文件类型类似于excel、PDF、word但是效率比较低下 导入依赖 去官网找到对应的插件集成文档 修改 原本的maven的版本太低了 !-- easyexcel --
dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion2.2.6/version
/dependency使用maven-search找到合适的版本 !-- easyExcel工具--dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion4.0.1/version/dependency导入完了刷新一下缓存检查一下是不是真的导进来了 新增方法 找到common/poi/excelUtil 工具类在类的最后加上 两个方法 import com.alibaba.excel.EasyExcel;/*** 对excel表单默认第一个索引名转换成listEasyExcel* * param is 输入流* return 转换后集合*/
public ListT importEasyExcel(InputStream is) throws Exception
{return EasyExcel.read(is).head(clazz).sheet().doReadSync();
}/*** 对list数据源将其里面的数据导入到excel表单EasyExcel* * param list 导出数据集合* param sheetName 工作表的名称* return 结果*/
public void exportEasyExcel(HttpServletResponse response, ListT list, String sheetName)
{try{EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(list);}catch (IOException e){log.error(导出EasyExcel异常{}, e.getMessage());
修改实体类
/*** 商品管理对象 tb_sku* * author z* date 2024-12-06*/
ExcelIgnoreUnannotated // 忽略未标记Excel注解的字段 只对标注的字段进行导出导入
ColumnWidth(16) // 列宽
HeadRowHeight(14) // 表头行高
HeadFontStyle(fontHeightInPoints 11) // 表头字体大小
public class Sku extends BaseEntity
{private static final long serialVersionUID 1L;/** 主键 */private Long skuId;/** 商品名称 */Excel(name 商品名称)ExcelProperty(value 商品名称)private String skuName;/** 商品图片 */Excel(name 商品图片,cellType Excel.ColumnType.IMAGE)ExcelProperty(value 商品图片)private String skuImage;/** 品牌 */Excel(name 品牌)ExcelProperty(value 品牌)private String brandName;/** 规格(净含量) */Excel(name 规格(净含量))ExcelProperty(value 规格)private String unit;/** 商品价格单位分 */Excel(name 商品价格单位分)ExcelProperty(value 商品价)private Long price;/** 商品类型Id */Excel(name 商品类型Id)ExcelProperty(value 商品类型Id)private Long classId;/** 是否打折促销 */private Integer isDiscount;}
改写controller中导出为 /*** 导出商品管理列表*/PreAuthorize(ss.hasPermi(manage:sku:export))Log(title 商品管理, businessType BusinessType.EXPORT)PostMapping(/export)public void export(HttpServletResponse response, Sku sku){ListSku list skuService.selectSkuList(sku);ExcelUtilSku util new ExcelUtilSku(Sku.class);//util.exportExcel(response, list, 商品管理数据); // 使用若依原本的poi导出util.exportEasyExcel(response, list, 商品管理数据); // 使用修改后的easyExcel导出}改写controller中导入为importEasyExcel /*** 商品导入*/PreAuthorize(ss.hasPermi(manage:sku:import))Log(title 商品管理, businessType BusinessType.IMPORT)PostMapping(/import)public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception{ExcelUtilSku util new ExcelUtilSku(Sku.class);
// ListSku skuList util.importExcel(file.getInputStream()); // 原本的poi导入ListSku skuList util.importEasyExcel(file.getInputStream()); // 修改后之后的easyExcel导入String operName SecurityUtils.getUsername();updateSupport true;String message skuService.importSkuList(skuList, updateSupport, operName);return AjaxResult.success(message);}