将org.apache.poi.ss.usermodel.Cell的Cellstyle设置为boolean

时间:2018-04-06 09:12:27

标签: java

我想在excel-cell中写一个布尔值,但不是将cellStyle设置为“logic”,而是将cellStyle改为“number”。

private void writeToDocument(XSSFWorkbook workbook) {
    Sheet sheet = workbook.createSheet("testSheet");
    Row row = sheet.createRow(0);
    Cell cell = row.createCell(0);
    cell.setCellValue(true);
}

我已经尝试过了

CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat([short s]);
cell.setCellStyle(cellStyle);

但是在0到49之间没有短暂的工作。

4 个答案:

答案 0 :(得分:2)

例如,使用适当的setCellValue重载版本时,单元格类型将自动分配,例如

cell.setCellValue(true);
System.out.println(cell.getCellType());

打印BOOLEAN

已在org.apache.poi:poi:4.1.1上选中

答案 1 :(得分:2)

您可以使用以下内容:

Row row = sheet.createRow(lineNumber);
Cell cell = row.createCell(1, CellType.BOOLEAN);

这将创建一个样式为持久化布尔值的单元格。

答案 2 :(得分:0)

将以下代码用于布尔值

 private void writeToDocument(XSSFWorkbook workbook) {
        Sheet sheet = workbook.createSheet("testSheet");
        Row row = sheet.createRow(0);
        Cell cell = row.createCell(0);
        cell.setCellType(HSSFCell.CELL_TYPE_BOOLEAN);
        cell.setCellValue((Boolean) true);
    }

答案 3 :(得分:0)

这是一种自定义日期的方法,可能您可以使用布尔值来尝试

final XSSFCellStyle date = sheet.getWorkbook().createCellStyle();
date.setDataFormat(
    sheet.getWorkbook()
         .getCreationHelper()
         .createDataFormat()
         .getFormat(pattern)
);
cell = row.createCell(index);
cell.setCellStyle(date);