easyexcel 在 设置标题_EasyExcel 自定义单元格式的问题。

packagecom.kit;import……public classExcelKit {public static void parseExcelAndSave(ListapiStatusVOS,String fileName){

EasyExcel.write(fileName, TestReportVO.class)

.head(head("我是一个标题头","描述:本次压测针对UXX常用接口进行压力测试;"))

.registerWriteHandler(newCustomCellWriteHandler())

.sheet("TestReport")

.doWrite(data(apiStatusVOS));

}/*** Api 返回内容 数据不全,先自定义赋值

*@paramstatusVOS

*@return

*/

private static List data(ListstatusVOS){

List dataList = new ArrayList<>();

statusVOS.forEach(ApiStatusVO->{

TestReportVO status= newTestReportVO();//@ExcelProperty("压测接口名称")

status.setTestName(ApiStatusVO.getApiName());//@ExcelProperty("压测时间")

status.setTestDate(newDate());//@ExcelProperty("压测时常(s)")

status.setTestDuration("100");//@ExcelProperty("平均吞吐量(s)")

status.setTestHandlingCapacity("101");//@ExcelProperty("平均响应时间(s)")

status.setTestResponseTime(ApiStatusVO.getApiRt());//@ExcelProperty("最大响应时间(s)")

status.setTestMaxResponseTime("102");//@ExcelProperty("错误率(%)")

status.setTestErrorRate("13.18");//@ExcelProperty("数据库CPU(User)(%)")

status.setTestCpuPercentum("15.18");//@ExcelProperty("数据库TCP连接数")

status.setTestTcpLinkNum("105");//@ExcelProperty("连接池大小")

status.setTestLinkPooSize("106");//@ExcelProperty("网络流量(上传/Mbps)(Min)")

status.setTestMinFlow("107");//@ExcelProperty("网络流量(上传/Mbps)(Max)")

status.setTestMaxFlow("108");

dataList.add(status);

});returndataList;

}/*** 自定义头

*@paramheadTitle 统一头

*@paramheadDescTitle 描述头

*@return返回整个头list。 头部相同连续的单元格会自动合并。*/

private static List>head(String headTitle, String headDescTitle){

List> list = new ArrayList>();//压测名称 压测时间 压测时常(s)平均吞吐量(s) 平均响应时间(s) 最大响应时间(s) 错误率(%) 数据库CPU(User)(%) 数据库TCP连接数 连接池大小 网络流量(上传/Mbps) 网络流量(下载/Mbps)

List head1 = new ArrayList();

head1.add(headTitle);

head1.add(headDescTitle);

head1.add(headDescTitle);

head1.add(headDescTitle);

head1.add(headDescTitle);

head1.add(headDescTitle);

head1.add(headDescTitle);

head1.add("压测名称");

List head2 = new ArrayList();

head2.add(headTitle);

head2.add(headDescTitle);

head2.add(headDescTitle);

head2.add(headDescTitle);

head2.add(headDescTitle);

head2.add(headDescTitle);

head2.add(headDescTitle);

head2.add("压测时间");

List head3 = new ArrayList();

head3.add(headTitle);

head3.add(headDescTitle);

head3.add(headDescTitle);

head3.add(headDescTitle);

head3.add(headDescTitle);

head3.add(headDescTitle);

head3.add(headDescTitle);

head3.add("压测时常(s)");

List head4 = new ArrayList();

head4.add(headTitle);

head4.add(headDescTitle);

head4.add(headDescTitle);

head4.add(headDescTitle);

head4.add(headDescTitle);

head4.add(headDescTitle);

head4.add(headDescTitle);

head4.add("平均吞吐量(s)");

List head5 = new ArrayList();

head5.add(headTitle);

head5.add(headDescTitle);

head5.add(headDescTitle);

head5.add(headDescTitle);

head5.add(headDescTitle);

head5.add(headDescTitle);

head5.add(headDescTitle);

head5.add("平均响应时间(s)");

List head6 = new ArrayList();

head6.add(headTitle);

head6.add(headDescTitle);

head6.add(headDescTitle);

head6.add(headDescTitle);

head6.add(headDescTitle);

head6.add(headDescTitle);

head6.add(headDescTitle);

head6.add("最大响应时间(s)");

List head7 = new ArrayList();

head7.add(headTitle);

head7.add(headDescTitle);

head7.add(headDescTitle);

head7.add(headDescTitle);

head7.add(headDescTitle);

head7.add(headDescTitle);

head7.add(headDescTitle);

head7.add("错误率(%)");

List head8 = new ArrayList();

head8.add(headTitle);

head8.add(headDescTitle);

head8.add(headDescTitle);

head8.add(headDescTitle);

head8.add(headDescTitle);

head8.add(headDescTitle);

head8.add(headDescTitle);

head8.add("数据库CPU(User)(%)");

List head9 = new ArrayList();

head9.add(headTitle);

head9.add(headDescTitle);

head9.add(headDescTitle);

head9.add(headDescTitle);

head9.add(headDescTitle);

head9.add(headDescTitle);

head9.add(headDescTitle);

head9.add("数据库TCP连接数");

List head10 = new ArrayList();

head10.add(headTitle);

head10.add("负责人:");

head10.add("齐冰洋");

head10.add("");

head10.add("");

head10.add("");

head10.add("");

head10.add("连接池大小");

List head11 = new ArrayList();

head11.add(headTitle);

head11.add("协助人:");

head11.add("石星");

head11.add("张刚强");

head11.add("秦亚飞");

head11.add("王京朝");

head11.add("张凯");

head11.add("网络流量(上传/Mbps)");

List head12 = new ArrayList();

head12.add(headTitle);

head12.add("");

head12.add("黄色:瓶颈");

head12.add("橙色:提醒");

head12.add("红色:严重");

head12.add("测试时间");

head12.add("2020-01-01"); //测试时间

head12.add("网络流量(下载/Mbps)");

list.add(head1);

list.add(head2);

list.add(head3);

list.add(head4);

list.add(head5);

list.add(head6);

list.add(head7);

list.add(head8);

list.add(head9);

list.add(head10);

list.add(head11);

list.add(head12);returnlist;

}

}

要在EasyExcel自定义设置特定标题的颜色和批注,您可以按照以下步骤进行操作: 1. 导入相关的依赖包: ```java import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy; import com.alibaba.excel.write.style.row.SimpleRowHeightStyleStrategy; import org.apache.poi.ss.usermodel.*; ``` 2. 创建一个类来自定义,继承`CellStyle`类,并实现`setCellStyle`方法: ```java public class CustomCellStyle extends CellStyle { private static final short CUSTOM_COLOR = IndexedColors.YELLOW.getIndex(); private String targetTitle; // 目标标题 public CustomCellStyle(String targetTitle) { this.targetTitle = targetTitle; } @Override public void setCellStyle(Cell cell) { String cellValue = cell.getStringCellValue(); if (cellValue.equals(targetTitle)) { Workbook workbook = cell.getSheet().getWorkbook(); CellStyle style = workbook.createCellStyle(); // 设置背景颜色 style.setFillForegroundColor(CUSTOM_COLOR); style.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 设置批注 Drawing<?> drawing = cell.getSheet().createDrawingPatriarch(); CreationHelper factory = workbook.getCreationHelper(); ClientAnchor anchor = factory.createClientAnchor(); Comment comment = drawing.createCellComment(anchor); RichTextString richTextString = factory.createRichTextString("这是一个批注"); comment.setString(richTextString); cell.setCellComment(comment); cell.setCellStyle(style); } } } ``` 3. 在代码中使用自定义: ```java public class Main { public static void main(String[] args) { // 读取Excel文件 List<List<Object>> data = EasyExcel.read("input.xlsx").sheet().doReadSync(); // 写入Excel文件 EasyExcel.write("output.xlsx") .sheet() .registerWriteHandler(new SimpleColumnWidthStyleStrategy()) .registerWriteHandler(new SimpleRowHeightStyleStrategy()) .registerWriteHandler(new CustomCellStyle("目标标题")) // 注册自定义,替换"目标标题"为实际的目标标题 .doWrite(data); } } ``` 以上代码将会将输入文件中的数据写入到输出文件中,并在指定标题单元格设置黄色背景色和批注内容为"这是一个批注"。 请注意,您需要将"目标标题"替换为您要设置的实际标题。另外,以上示例代码仅适用于`.xlsx`格的Excel文件。如果需要处理`.xls`格的Excel文件,需要使用`HSSFWorkbook`替代`XSSFWorkbook`。如果您有多个目标标题需要设置,可以根据需要在代码中添加多个自定义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值