easypoi 给表头标题行加粗 设置颜色

FistTest

项目要做导出功能 首先想到poi  然后搜了个工具类

这个工具类的做法是传一个List list的集合

String[] str={"字段1#filed1","字段2#filed2"...} 这种格式通过反射来自动导出 

好用是好用 但是局限性太大  几十条数据不明显  1000多条数据而已居然要导出两分钟  气哭

然后我果断弃坑...

SecondTest

忘了什么途径看到easypoi 就拿来试了下  导出速度确实上来了

说下easypoi遇到的坑  想给标题行字体加粗找不到地方

百度半天没找到有点用的帮助==.

http://easypoi.mydoc.io/#text_202980  

最后通过这个文档找到了解决办法

我这边先简单说下easypoi的使用  

1.首先是pom文件配置 添加如下


  cn.afterturn
  easypoi-base
  3.1.0


  cn.afterturn
  easypoi-web
  3.1.0


  cn.afterturn
  easypoi-annotation
  3.1.0

2.实体里边

@Excel(name = "生日", orderNum = "10",exportFormat = "yyyy-MM-dd",width=16)
private Date bitThday;//预放款日期

name 导出标题列名字 orderNum第几列 从0开始 exportFormat日期导出格式 非日期可以不写 width列宽 不填默认10

3.然后主要导出的方法是这个

ExcelExportUtil.exportExcel(exportParams, pojoClass, list);

ExportParams exportParams是导出要传的参数 pojoClass是要导出的实体 list是要导出的数据集合

这是easypoi自带的工具类里的方法  返回值是

Workbook workbook  后边还需要做个数据流写到响应里  如下:
private static void downLoadExcel(String fileName, HttpServletResponse response, HttpServletRequest request, Workbook workbook) {
    try {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        String now = sdf.format(new Date());//加时间戳
        fileName = fileName + now + ".xls";
        final String userAgent = request.getHeader("USER-AGENT");
        String finalFileName = null;
        if (userAgent.contains("Mozilla") || userAgent.contains("Chrome")) {//google,火狐浏览器
            finalFileName = new String(fileName.getBytes(), "ISO8859-1");
        } else {
            finalFileName = URLEncoder.encode(fileName, "UTF8");//其他浏览器
        }
        response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", "application/vnd.ms-excel");
        workbook.write(response.getOutputStream());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
(补充说一下跟前端交互的坑  前端是用vue  然后用里边的axios 直接用里边的post或者get方法浏览器不会下载,需要写方法处理...还有就是后边能下载了但是拿不到 Content-Disposition里我传的文件名  哎 ..心累)

 

 

 

然后说重点了

想给标题行加样式需要传ExportParams exportParams的时候set其中的一个熟悉style 要传一个class类

easypoi 给表头标题行加粗 设置颜色_第1张图片

工具默认传的是

ExcelExportStylerDefaultImpl.class这样一个实体类

easypoi 给表头标题行加粗 设置颜色_第2张图片

而我们要设置的标题行字体加粗和背景颜色也就在这里

首先复制一个这个class的代码  然后自己新建一个除了类名其他都一样的类

最后在getTitleStyle里加上字体加粗以及设置颜色的代码就行 如下

easypoi 给表头标题行加粗 设置颜色_第3张图片

标箭头的是我添的行---

如此解决问题

 

 

你可能感兴趣的:(Java,后端)