java设置单元格为文本_怎样设置单元格属性为文本格式?
你好,剛才參考你的方式試了一下,還是不行,首先我導出的java bean 屬性,@ExcelProperty(value = "單據編號")
private String billNo; (沒有加converter 屬性),其次我的自定義handler是這樣寫的,public class CustomCellWriteHandler implements CellWriteHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomCellWriteHandler.class);
@Override
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row,
Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell,
Head head, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
List cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
// 這里可以對cell進行任何操作
LOGGER.info("第{}行,第{}列寫入完成。", cell.getRowIndex(), cell.getColumnIndex());
if (isHead && cell.getColumnIndex() == 0) {
cell.setCellType(CellType.STRING);
}
}
}
,最后我的導出util,public class EasyExcelUtils {
public static void export2ExcelByOutputStream(OutputStream outputStream,List list,Class clazz){
// 頭的策略
WriteCellStyle headWriteCellStyle = new WriteCellStyle();
// 背景設置為白色
headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
WriteFont headWriteFont = new WriteFont();
headWriteFont.setFontHeightInPoints((short)10);
headWriteCellStyle.setWriteFont(headWriteFont);
// 內容的策略
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
// 這里需要指定 FillPatternType 為FillPatternType.SOLID_FOREGROUND 不然無法顯示背景顏色.頭默認了 FillPatternType所以可以不指定
contentWriteCellStyle.setFillPatternType(FillPatternType.NO_FILL);
// 背景白色
contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
WriteFont contentWriteFont = new WriteFont();
// 字體大小
contentWriteFont.setFontHeightInPoints((short)15);
contentWriteCellStyle.setWriteFont(contentWriteFont);
// 這個策略是 頭是頭的樣式 內容是內容的樣式 其他的策略可以自己實現
HorizontalCellStyleStrategy horizontalCellStyleStrategy =new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
// 這里 需要指定寫用哪個class去寫,然后寫到第一個sheet,名字為模板 然后文件流會自動關閉
ExcelWriterSheetBuilder sheet = EasyExcel.write(outputStream,clazz).registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new CustomCellWriteHandler()).sheet("Sheet1");
sheet.useDefaultStyle(false).doWrite(list);
}
}
導出excel 后,導出的那個字符串還是科學計數法表示。很頭疼,方便加個微信或者qq 詢問一下嗎?
總結
以上是生活随笔為你收集整理的java设置单元格为文本_怎样设置单元格属性为文本格式?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浮点编码
- 下一篇: 为什么Multi-DRM如此重要?