[]
        
立即试用
(Showing Draft Content)

工作表视图

如何使用 GcExcel Java 配置和管理工作表视图

本文演示了如何在 GcExcel Java 中配置和管理 Excel 中的工作表视图,包括预定义视图、自定义工作表视图选项、调整缩放级别、冻结窗格和拆分窗格。这些功能允许您管理工作表的可见区域和布局,以增强数据的可读性。

预定义视图

与 MS Excel 类似,GcExcel Java 提供了预定义视图,方便用户在打印文档前预览页面布局和分页符。

  • 普通视图 - 工作表的默认视图。

  • 页面布局视图 - 显示工作表打印后的效果,包括页面边界、页眉和页脚。

  • 分页预览视图 - 显示打印时的分页符位置。

您可以使用 IWorksheetView 接口的 setViewType 方法设置预设的工作表视图。

参考以下示例代码将视图设置为分页预览。

// 创建一个新工作簿
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getActiveSheet();
        
worksheet.getRange("J12").setValue(1);
        
// 将工作表的视图模式设置为分页预览
worksheet.getSheetView().setViewType(ViewType.PageBreakPreview);

// 将分页预览的缩放比例修改为 80%
worksheet.getSheetView().setZoom(80);

// 保存为 Excel 文件
workbook.save("PageBreak.xlsx");

输出结果如下图所示:

image

工作表视图选项

用户可以自定义工作表的显示方式,包括网格线可见性、行列标题、公式显示、方向、网格线颜色和空白区域可见性等选项。


您可以通过设置 IWorksheet 接口的 getSheetView 方法,或使用 IWorksheetView 接口的方法来配置工作表视图。下表列出了 IWorksheetView 接口的一些方法。

方法

描述

setGridlineColor

用于设置网格线颜色。

setScrollColumn

用于设置工作表中最左侧的列号。

setScrollRow

用于设置显示在工作表顶部的行号。

setDisplayRightToLeft

用于设置指定工作表是否从右到左显示,而非从左到右。

setDisplayFormulas

用于设置工作表是否显示公式。

setDisplayGridlines

用于设置是否显示网格线。

setDisplayVerticalGridlines

用于设置是否显示垂直网格线。

setDisplayHorizontalGridlines

用于设置是否显示水平网格线。

setDisplayHeadings

用于设置是否显示标题。

setDisplayOutline

用于设置是否显示大纲符号。

setDisplayRuler

用于设置指定工作表是否显示标尺。

setDisplayWhitespace

用于设置是否显示空白区域。

setDisplayZeros

用于设置是否显示零值。

参考以下示例代码设置表格仅显示垂直网格线。

// 创建一个新工作簿
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);

worksheet.getRange("A1:I88").setValue(10);

// 设置不显示水平网格线
worksheet.getSheetView().setDisplayHorizontalGridlines(false);

// 设置显示垂直网格线
worksheet.getSheetView().setDisplayVerticalGridlines(true);

// 保存为 SJS 文件
workbook.save("gridlines.Sjs");

缩放

缩放用于调整工作表内容在屏幕上的显示大小。用户可以设置缩放级别来放大或缩小视图,以便更轻松地查看细节或浏览大量数据的概览。

缩放级别

您可以通过设置 IWorksheetView 接口的 setZoom 方法来获取或指定工作表的显示比例(以百分比表示)。例如,值为 100 表示默认大小,200 表示放大到两倍显示大小,依此类推。


参考以下示例代码将缩放级别设置为 80%。

// 创建一个新工作簿
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);

// 将缩放级别设置为 80%
worksheet.getSheetView().setZoom(80);

// 保存为 Excel 文件
workbook.save("zoom.xlsx");

输出结果如下图所示:

image

适应所选内容

您可以使用 IWorksheetView 接口的 setFitSelection 方法自动调整缩放级别,使所选区域在当前窗口中完全可见,从而最大程度地显示所选内容。

  • setFitSelection 方法仅支持图表工作表。如果在常规工作表上使用此方法,将抛出 NotSupportedException

  • SpreadJS 不支持图表工作表。如果一个文件设置了 setFitSelection 方法并导出为 SJS 或 SSJSON 格式,setFitSelection 设置将不会被保留。

参考以下示例代码设置缩放级别以适应所选范围。

Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);

// 准备数据
worksheet.setName("Data");
worksheet.getRange("A1:C13").setValue(new Object[][] {
    {null, "Blue Series", "Orange Series"},
    {"Jan", 0, 59.1883603948205},
    {"Feb", 44.6420211591501, 52.2280901938606},
    {"Mar", 45.2174930051225, 49.8093056416248},
    {"Apr", 62, 37.3065749226828},
    {"May", 53, 34.4312192530766},
    {"Jun", 31.8933622049831, 69.7834561753736},
    {"Jul", 41.7930895085093, 63.9418103906982},
    {"Aug", 73, 57.4049534494926},
    {"Sep", 49.8773891668518, 33},
    {"Oct", 50, 74},
    {"Nov", 54.7658428630216, 22.9587876597096},
    {"Dec", 32, 54},
});

// 创建图表工作表并添加面积图
IWorksheet chartSheet = workbook.getWorksheets().add(SheetType.Chart);
chartSheet.setName("Chart");
IShape shape = chartSheet.getShapes().addChart(ChartType.Area, 0, 0, 360, 230);
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:C13"), RowCol.Columns);
shape.getChart().getChartTitle().setText("Area Chart");

// 设置图表工作表适应所选内容
chartSheet.getSheetView().setFitSelection(true);

// 保存为 Excel 文件
workbook.save("FitSelection.xlsx");

输出结果如下图所示:

11

窗格

窗格功能使您可以将工作表划分为多个独立的查看区域。通过使用冻结窗格或拆分窗格,您可以同时查看工作表的不同部分而无需频繁滚动,显著提高数据查看的便利性和效率。


您可以使用 IWorksheet 接口的方法来冻结、取消冻结、拆分或取消拆分窗格。下表列出了 IWorksheet 接口的一些方法。

方法

描述

getFreezeRow

用于获取当前冻结窗格的起始行位置。

getFreezeColumn

用于获取当前冻结窗格的起始列位置。

getFreezeTrailingRow

用于获取在工作表底部指定要冻结的行,以便在滚动时保持可见。

getFreezeTrailingColumn

用于获取在工作表右侧指定要冻结的列,以便在滚动时保持可见。

getSplitRow

用于获取工作表被拆分为多个窗格的行索引。

getSplitColumn

用于获取工作表被拆分为多个窗格的列索引。

getFrozenLineColor

用于获取或设置冻结窗格线的自定义颜色。

FreezePanes(int, int)

用于通过指定行和列索引来冻结工作表中的窗格,以设置冻结的行和列。

FreezeTrailingPanes(int, int)

用于通过指定行和列索引来冻结工作表底部和右侧的窗格。

UnfreezePanes()

用于取消当前工作表中所有冻结的窗格。

UnfreezeTrailingPanes()

用于取消当前工作表底部和右侧所有冻结的窗格。

SplitPanes(int , int)

用于在工作表中锁定行和列,将其分为多个可独立滚动的区域。通过提供单元格索引作为参数来指定拆分位置。

UnsplitPanes()

用于取消拆分的窗格。使用此方法类似于使用 IWorksheet.SplitPanes(0,0)。

冻结窗格

GcExcel Java 支持在工作表中冻结窗格,允许用户在滚动其余内容时保持特定的行或列可见。


您还可以为冻结窗格线设置自定义颜色。自定义颜色仅在与 SpreadJS 交互时可见,在导出的 Excel 或 PDF 文件中不可见。

  • 参考以下示例代码在工作表中冻结窗格。

    // 创建一个新工作簿
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.getWorksheets().get(0);
    
    // 冻结窗格
    worksheet.freezePanes(2, 3);
    
    // 保存为 Excel 文件
    workbook.save("FreezePanes.xlsx");

    输出结果如下图所示:

    image


  • 参考以下示例代码在工作表中将冻结窗格线颜色设置为蓝色。

    // 创建一个新工作簿
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.getWorksheets().get(0);
    
    // 冻结窗格
    worksheet.freezePanes(5, 5);
    
    // 将冻结线颜色设置为蓝色
    worksheet.setFrozenLineColor(Color.GetBlue());
    
    // 保存为 SJS 文件
    workbook.save("frozenlinecolor.Sjs");
  • 参考以下示例代码取消工作表中冻结的窗格。

    // 取消冻结窗格
    worksheet.unfreezePanes();

冻结尾部窗格

GcExcel Java 支持冻结尾部窗格,允许工作表的底部行和最右侧列在滚动时保持可见,便于数据的查看和比较。


冻结的尾部窗格仅在与 SpreadJS 格式交互时可见,在导出的 Excel 或 PDF 文件中不可用。

  • 参考以下示例代码在工作表中冻结尾部窗格。

    // 创建一个新工作簿
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.getWorksheets().get(0);
    
    // 冻结尾部窗格
    worksheet.freezeTrailingPanes(2, 3);
    
    // 获取冻结的尾部行和列的数量
    System.out.println("尾部行数为: " + worksheet.getFreezeTrailingRow() + "\n尾部列数为: " + worksheet.getFreezeTrailingColumn());
    
    // 保存为 SJS 文件
    workbook.save("freezetrailingrowscolumns.Sjs");
  • 参考以下示例代码取消工作表中的尾部冻结窗格。

    // 创建一个新工作簿
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.getWorksheets().get(0);
    
    // 冻结尾部窗格
    worksheet.freezeTrailingPanes(2, 3);
    
    // 取消冻结尾部窗格
    worksheet.unfreezeTrailingPanes();
    
    // 保存为 SJS 文件
    workbook.save("unfreezetrailingrowscolumns.Sjs");

拆分窗格

GcExcel Java 允许用户将工作表窗口拆分为多个独立的查看区域。通过拆分窗格,您可以同时查看和编辑同一工作表不同部分的数据,减少频繁滚动的需求。每个拆分的窗格都可以独立滚动,便于浏览和比较大量数据。

  • 参考以下示例代码将工作表拆分为多个窗格。

    // 创建一个新工作簿
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.getWorksheets().get(0);
    
    // 将工作表拆分为独立的窗格
    worksheet.splitPanes(5,6);
    
    // 保存为 Excel 文件
    workbook.save("SplitPanes.xlsx");

    输出结果如下图所示:

    image


  • 参考以下示例代码取消拆分窗格。

    // 取消拆分窗格
    worksheet.unsplitPanes();