KaTool
Home
Redis工具包
Excel工具包
图片与Base64转换工具包
  • IP地址工具包(Nginx反向代理解决)
  • 身份证校验工具包
  • 验证码工具包
  • AuthUtil
  • KaTool-Security鉴权框架
  • 七牛云SDK(V1.9.5.BETA及其之前)
  • 综合SDK(V1.9.5.GAMA及其之后)
  • Kimi
定时任务调度
类加载和Bean管理
  • KaTool
  • KaToolTest
  • 在github上修改本页面
  • Karos'Blog
Home
Redis工具包
Excel工具包
图片与Base64转换工具包
  • IP地址工具包(Nginx反向代理解决)
  • 身份证校验工具包
  • 验证码工具包
  • AuthUtil
  • KaTool-Security鉴权框架
  • 七牛云SDK(V1.9.5.BETA及其之前)
  • 综合SDK(V1.9.5.GAMA及其之后)
  • Kimi
定时任务调度
类加载和Bean管理
  • KaTool
  • KaToolTest
  • 在github上修改本页面
  • Karos'Blog

这个工具包主要是对EasyExcel的封装,是1.9.6版本新增

多图转换器

我们实现了一个ListUrlImageConvegter用于多图转换,目前是将多个图片并列为一排

注意,如果图片字段是在中间,需要自行重写header和数据,否则会出现覆盖的情况

方法名功能
convegtToInputStream将图片URL转换为输入流
convegtValueToExcelData返回一个ImageData列表(可以取出后通过ImageData::getImage来通过Byte直接输出到excel)

ExcelUtils

工具包内主要是convegt方法

有两个返回值

返回值为void的方法需要传入一个OutputStream,将结果直接输出到输出流中

返回值为ByteArrayOutputStream的方法为将结果以ByteArrayOutputStream的形式返回

下面对各个参数进行说明:

类型参数名参数作用
List<String>heads一个String对象的列表,用于存放标题
classclazz导出类型的源类,用于确定header
Listdata需要导出的数据
StringsheetName放入的sheet的名称
List<List<String>>changeColList需要调整的列(和行合并进行搭配使用)
List<List<String>>changeRowList需要调整的行(和列合并进行搭配使用)
List<HashMap<Integer, Integer>>mergeRowMapList需要合并的行
List<HashMap<Integer, Integer>>mergeColMapList需要合并的列

其中对于调整列对象,我们有专门的表达式起始行/列:截止行/列

如果中间有隔断,比如这样的单元格

image-20240201151427275

我们要合并的是行,需要调整的是列,具体的代码可以这样做

List<String> changeCols = new ArrayList();
changeCols.add("0:2");
changeCols.add("6:8");
HashMap<Integer,Integer> mergeRows = new HashMap();
for(int i=1;i<=30;i+=2){
    mergeRows.put(i,i+1);
}
List<List<String>> changeColList = new ArrayList();
List<HashMap<Integer,Integer>> mergeRowList = new ArrayList();
changeColList.add(changeCols);
mergeRowLis.add(mergeRows);

外层我们用list来封装一下主要原因是我们可能会遇到一些奇怪的合并方案,比如这种

image-20240201152045741

我们有不同的合并方式,所以我们可以放在list里面,用list的下标来对每一对change和merge进行归类