如何调整单元格大小

3
我正在尝试使用Apache(HSSFWorkbook)构建Excel文件。
我无法弄清如何设置列宽度大小。
请看以下示例:
第一列(A)具有“行号”值,我们无法看到整个字符串。列(D)和(E)也存在同样的问题,但如果我们双击它,就可以看到完整的字符串。
我想创建单元格,用户不需要双击即可查看完整内容。
我应该如何做?
4个回答

5
您可以使用autoSizecolumn(),它将根据列标题设置列大小。
sheet.autoSizeColumn(0)// to adjust first column

请参考此链接,其中涉及IT技术相关内容。为了更好理解,请使用for循环设置所有可用列。请注意保留HTML标记。
for(int colNum = 0; colNum<row.getLastCellNum();colNum++)   
    workbook.getSheetAt(0).autoSizeColumn(colNum);

我的错误,它现在可以工作了。我之前尝试了autoSizeColumn,但是在放置数据之前。我只是将这个命令移到代码的末尾,现在它可以工作了。 - user3668129

2

尝试在HSSFSheet对象上使用setColumnWidth()方法。

sheet.setColumnWidth(0, 1000);

这需要比使用autoSizeColumn()更多的代码,但我发现在较新版本的Excel(2013)中打开生成的文件时可以忽略autoSizeColumn()。


1
Autofit也适用于以下情况。(来自帮助文件)这个例子会改变Sheet1中A到I列的宽度,以达到最佳适配。
Worksheets("Sheet1").Columns("A:I").AutoFit 

此示例将Sheet1中A列到E列的宽度更改为最适合内容的宽度,仅基于单元格A1:E1的内容。

Worksheets("Sheet1").Range("A1:E1").Columns.AutoFit 

我不确定那是什么编程语言,但我相当确定它不是Java,也没有使用OP所询问的Apache POI库。 - Gagravarr

0

来自文档

Sheet sheet = workbook.getSheetAt(0);
sheet.autoSizeColumn(0); //adjust width of the first column
sheet.autoSizeColumn(1); //adjust width of the second column

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