Apache POI Excel - 如何配置要扩展的列?

2022-08-31 08:26:22

我用来生成输出一些数据。Apache POI APIexcel spreadsheet

我面临的问题是,当创建和打开电子表格时,列没有展开,因此一些长文本(如日期格式的文本)不会在第一眼中显示出来。

我可以双击Excel中的列边框来展开或拖动边框来调整列宽,但可能有20多个列,并且每次打开电子表格时我都不想手动执行此操作:(

我发现了(虽然可能是错误的方法),也许可以做到这一点,但没有运气。也许我以错误的方式使用它。groupRow()setColumnGroupCollapsed()

示例代码片段

        Workbook wb = new HSSFWorkbook();
        CreationHelper createHelper = wb.getCreationHelper();
        //create sheet
        Sheet sheet = wb.createSheet("masatoSheet");

        //not really working yet.... :(
        //set group for expand/collapse
        //sheet.groupRow(0, 10); //just random fromRow toRow argument values...
        //sheet.setColumnGroupCollapsed(0, true);

        //create row
        Row row = sheet.createRow((short)0);
        //put a cell in the row and store long text data
        row.createCell(0).setCellValue("Loooooooong text not to show up first");

创建此电子表格时,单元格中包含“Looooooong 文本不首先显示”字符串,但由于该列未展开,因此仅显示“Loooooooo”。

如何配置它,以便在打开电子表格时,该列已经展开???


答案 1

将所有数据添加到工作表,可以调用工作表以将列自动调整为适当的大小autoSizeColumn(int column)

下面是指向 API 的链接。

请参阅此帖子以获取更多参考 在使用apache poi时,将excel单元格大小拟合到内容大小的问题


答案 2

提示:为了使自动调整大小工作,应该在将数据填充到excel中后进行调用。sheet.autoSizeColumn(columnNumber)

在填充数据之前调用该方法将不起作用。


推荐