[]
GcExcel Java 支持根据行和列中的数据自动调整行高和列宽。自动调整行高和列宽,以便行或列中的每个值都能完美匹配。
当用户需要处理包含大量数据的表单时,某些单元格可能包含看起来被截断的值(如果单元格宽度或高度太小)或包含额外的空格(如果单元格宽度或高度太大)。为了避免这种异常并使表单看起来更干净,GcExcel Java允许用户自动调整列的宽度和行的高度,以便自动调整单元格内的内容。
此外,自动调整功能非常有用,特别是不知道每个值有多长,它将占用多少空间,也不想滚动整个表单来手动固定整个工作表的行高和列宽。
在GcExcel Java中使用自动调整功能时,应记住以下几点:
此功能仅支持自动调整特定单元格范围的列宽和行高。
如果使用的单元格区域的类型是列(可以使用 IRange.getColumns/IRange.getEntireColumn ), 则仅将列宽调整为最佳匹配,但不会更改行高。
请参阅以下代码示例,以便自动调整工作表中的行高和列宽:
// Initialize workbook
Workbook workbook = new Workbook();
// Fetch default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
// Auto fit column width of range 'A1'
worksheet.getRange("A1").setValue("Grapecity Documents for Excel");
worksheet.getRange("A1").getColumns().autoFit();
// Auto fit row height of range 'B2'
worksheet.getRange("B2").setValue("Grapecity Documents for Excel");
worksheet.getRange("B2").getFont().setSize(20);
worksheet.getRange("B2").getRows().autoFit();
// Auto fit column width and row height of range 'C3'
worksheet.getRange("C3").setValue("Grapecity Documents for Excel");
worksheet.getRange("C3").getFont().setSize(32);
worksheet.getRange("C3").autoFit();
// Saving the workbook to xlsx
workbook.save("AutoFitRowHeightColumnWidth.xlsx");
您还可以使用重载的 autoFit 方法,该方法提供了 considerMergedCell参数。 该参数设置为 true 时,允许您自动适应合并单元格的行高(在列方向)。 请注意,合并的单元格不应包含多于一行。 以下示例代码展示了这样的场景。
//create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getActiveSheet();
worksheet.getRange("A1:D1").merge();
worksheet.getPageSetup().setPrintGridlines(true);
worksheet.getRange("A1:D1").setWrapText(true);
worksheet.getRange("A1:D1").setValue("Automatically fit the row height of a merged cell in column-direction.");
worksheet.getRange("A1:D1").getEntireRow().autoFit(true);
//save to an pdf file
workbook.save("testAutoFitWrapText.xlsx");
上述代码的输出在 Excel 中将如下所示:
注意:自动调整功能有以下限制 :
在合并单元格中,将不应用自动调整方法。此行为与Excel中的相同。
如果单元格中的文本已换行,则自动适配列将不会应用于单元格。
自适应方法非常耗时,会影响表单的性能。为了确保表单的效率,用户不应该过于频繁地调用这些方法。