如何在没有HSSFWorkbook实例的情况下设置单元格样式



我想用电子表格粗体设置标题行的字体。我能够使用以下代码在我的主函数中做到这一点:

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet dataSheet = workbook.createSheet("Data");
HSSFCellStyle fontStyle = workbook.createCellStyle();
HSSFFont font = workbook.createFont();
font.setBold(true);
fontStyle.setFont(font);
Row row = dataSheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellStyle(fontStyle);
cell.setCellValue("ID");

由于createCellStyle是HSSFWorkbook的方法,如果我通过调用一个函数来写入工作表,该函数将工作表而不是工作簿作为参数,如何设置单元格样式?

public class SummaryXlsCreator {
    public static void main(String[] args) {
        HSSFWorkbook workbook = new    HSSFWorkbook();
        HSSFSheet dataSheet = workbook.createSheet("Data");
        writeCDMarker(dataSheet);
    }
    public static void writeCDMarker(HSSFSheet sheet) {
        int rownum = 0;
        int cellnum = 0;
        Row row = sheet.createRow(rownum++);
        Cell cell = row.createCell(cellnum++);
        // write first row of sheet "Data"
        cell.setCellValue("ID");
    }
使用

getWorkbook() 获取父级并继续使用现有代码。

sheet.getWorkbbok().createCellStyle();

https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFSheet.html

您可以使用

静态CellUtil.setCellStyleProperties(Cell cell, Map<String, Object> properties)设置单元格格式,而无需引用工作簿或工作表。

用法示例:

// Format cell into date time format with "m/d/yy h:mm", 
// which is converted to user's locale in Excel. 
CellUtil.setCellStyleProperties(cell, Collections.singletonMap(CellUtil.DATA_FORMAT, (short) 22));

相关内容

最新更新