2
异常代码
这里写你的代码
异常提示 请提供完整的异常提示,记住是全部异常! 建议描述
异常代码
这里写你的代码
异常提示 请提供完整的异常提示,记住是全部异常! 建议描述
这个也可以归结于自定义样式问题,不过这个特殊一点,请参照官方demo-自定义拦截器
具体的样式的操作请百度一下就知道了,我就不放链接了,关键词poi 冻结表头
CreateFreezePane的参数 第一个参数表示要冻结的列数; 第二个参数表示要冻结的行数,这里只冻结列所以为0; 第三个参数表示右边区域可见的首列序号,从1开始计算; 第四个参数表示下边区域可见的首行序号,也是从1开始计算,这里是冻结列,所以为0; 例:sheet.createFreezePane(1,2,1,2);
OK 实现了 谢谢
搜到了这个回答,但是不那么直观,研究了下,放个大家可以复制粘贴的代码
添加一个类
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
public class FreezeAndFilter implements SheetWriteHandler {
public int colSplit = 0, rowSplit = 1, leftmostColumn = 0, topRow = 1;
public String autoFilterRange = "1:1";
@Override
public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
}
@Override
public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
Sheet sheet = writeSheetHolder.getSheet();
sheet.createFreezePane(colSplit, rowSplit, leftmostColumn, topRow);
sheet.setAutoFilter(CellRangeAddress.valueOf(autoFilterRange));
}
}
使用方法
ExcelWriter writer = EasyExcel.write(outputStream).build();
WriteSheet totalSheet = EasyExcel
.writerSheet(1, "总分")
.head(DownloadData.class)
.registerWriteHandler(new FreezeAndFilter())
.build();
writer.write(Collections.singletonList(totalsData), totalSheet);
writer.finish();
899 #874 #443 #625
有空加到例子代码里