Apache POI Excel - 如何配置列进行扩展?

138

我正在使用Apache POI API生成Excel电子表格来输出一些数据。

我面临的问题是,当电子表格创建并打开时,列没有展开,因此一些长文本(如日期格式的文本)不能在第一眼看到。

我可以在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 text not to show up first”字符串位于单元格中,但由于列未展开,因此仅显示“Loooooooo”。

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


https://dev59.com/Z2Ij5IYBdhLWcg3wflQy - gavenkoa
你似乎正在寻找一种使用POI来完成这个任务的方法。但是在Excel中,要简单地完成此操作,请选择整个工作表,然后双击A-B列标题边界。如果您需要对多个工作表执行此操作,则编码解决方案可能更适合您。 - avg
请查看我在其他帖子中的回答:https://dev59.com/ymMk5IYBdhLWcg3wxAry#73571342 - Jakub Słowikowski
12个回答

0
非常简单,只需使用这一行代码 dataSheet.autoSizeColumn(0)
或者在括号中输入列数 dataSheet.autoSizeColumn(单元格编号)

0

您也可以将文本包装起来。以下是示例代码:

CellStyle wrapCellStyle = new_workbook.createCellStyle();
                    wrapCellStyle.setWrapText(true);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接