EasyExcel导出Excel设置单元格文本格式(亲测有效)
生活随笔
收集整理的這篇文章主要介紹了
EasyExcel导出Excel设置单元格文本格式(亲测有效)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
EasyExcel的maven依賴, 注意版本問題, 我的是3.0+的版本
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version> </dependency>下面是一開始的代碼, 是不生效的, 查了好多都是這么設置的, 我也是這么寫的但是就是不生效, 然后查了資料好多也說是注冊寫處理器必須是一個, 不能是多個, 因為我的是注冊兩個寫處理器, 然后我就去掉了一個處理, 但是TMD還是不生效, 后來查了資料, 試了好幾次, 終于可以生效了, 下面的寫法應該是2.0版本的寫法, 因為我的是3.0+, 沒有驗證這個2.0+是否生效, 就不多說了.
public class ExcelCellWriteHandler implements CellWriteHandler {@Overridepublic void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {// 2.0 設置單元格為文本Workbook workbook = writeSheetHolder.getSheet().getWorkbook();CellStyle cellStyle = workbook.createCellStyle();DataFormat dataFormat = workbook.createDataFormat();cellStyle.setDataFormat(dataFormat.getFormat("@"));cell.setCellStyle(cellStyle);} }生效解決方法1: 在作用字段或者類上作用@ContentStyle注解, 然后設置屬性dataFormat = 49
/*** 直接作用到類上, 這種比較快捷* 看類BuiltinFormats定義的數組, 數組定義了所有的格式,* Excel單元格的文本格式就是對應數組里的"@"元素值, "@"元素值索引為49, 所以設置dataFormat = 49*/ @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT, dataFormat = 49)解決方法2: 看下面代碼吧, 重寫下面任意兩個其中的一個方法就可以了, 寫入注冊幾個寫處理器都是可以的, 然后就可以導出試一下了.
public class ExcelCellWriteHandler implements CellWriteHandler {@Overridepublic void afterCellDispose(CellWriteHandlerContext context) {// 3.0 設置單元格為文本WriteCellData<?> cellData = context.getFirstCellData();WriteCellStyle writeCellStyle = cellData.getOrCreateStyle();DataFormatData dataFormatData = new DataFormatData();dataFormatData.setIndex((short) 49);writeCellStyle.setDataFormatData(dataFormatData);}@Overridepublic void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {// 3.0 設置單元格為文本Workbook workbook = writeSheetHolder.getSheet().getWorkbook();DataFormat dataFormat = workbook.createDataFormat();for (WriteCellData<?> writeCellData : cellDataList) {WriteCellStyle writeCellStyle = writeCellData.getOrCreateStyle();DataFormatData dataFormatData = new DataFormatData();dataFormatData.setIndex(dataFormat.getFormat("@"));writeCellStyle.setDataFormatData(dataFormatData);}} }導出的Excel就是文本的格式了
總結
以上是生活随笔為你收集整理的EasyExcel导出Excel设置单元格文本格式(亲测有效)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组织管理类
- 下一篇: 自学白帽黑客的第一年总结