[]
        
(Showing Draft Content)

自动调整行高和列宽

GcExcel Java 支持根据行和列中的数据自动调整行高和列宽。自动调整行高和列宽,以便行或列中的每个值都能完美匹配。

使用自适应的优势

当用户需要处理包含大量数据的表单时,某些单元格可能包含看起来被截断的值(如果单元格宽度或高度太小)或包含额外的空格(如果单元格宽度或高度太大)。为了避免这种异常并使表单看起来更干净,GcExcel Java允许用户自动调整列的宽度和行的高度,以便自动调整单元格内的内容。

此外,自动调整功能非常有用,特别是不知道每个值有多长,它将占用多少空间,也不想滚动整个表单来手动固定整个工作表的行高和列宽。

在GcExcel Java中使用自动调整功能时,应记住以下几点:

  • 此功能仅支持自动调整特定单元格范围的列宽和行高。

  • 用户可以使用 IRange  接口的  autoFit() 方法来自动调整行高和列宽。

  • 如果使用的单元格区域的类型是列(可以使用 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 中将如下所示:



注意:自动调整功能有以下限制 :

  1. 在合并单元格中,将不应用自动调整方法。此行为与Excel中的相同。

  2. 如果单元格中的文本已换行,则自动适配列将不会应用于单元格。

  3. 自适应方法非常耗时,会影响表单的性能。为了确保表单的效率,用户不应该过于频繁地调用这些方法。