如何适应细胞大小

时间:2014-11-07 15:00:56

标签: java excel apache-poi

我试图用apache构建一个excell文件。 (HSSFWorkbook)

我无法弄清楚如何设置列宽。

请看以下示例:

enter image description here

第一列(A)的值为:"行号"我们无法看到整个字符串。 列(D)和(E)具有相同的问题,但如果我们双击它,我们可以看到完整的字符串。

我想创建用户不需要双击它的单元格。 我该怎么办?

4 个答案:

答案 0 :(得分:4)

您可以使用autoSizecolumn()根据标题设置列大小。

sheet.autoSizeColumn(0)// to adjust first column

请参阅此link。这会有所帮助......

要设置所有可用列,请使用for循环

for(int colNum = 0; colNum<row.getLastCellNum();colNum++)   
    workbook.getSheetAt(0).autoSizeColumn(colNum);

答案 1 :(得分:1)

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

sheet.setColumnWidth(0, 1000);

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

答案 2 :(得分:1)

自动调整也可以使用

(来自帮助文件)
此示例更改Sheet1上的列A到I的宽度,以实现最佳匹配。

Worksheets("Sheet1").Columns("A:I").AutoFit 

此示例仅根据单元格A1:E1的内容更改Sheet1上A列到E列的宽度,以达到最佳拟合。

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

答案 3 :(得分:0)

来自the documentation

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