[]
        
(Showing Draft Content)

工作表视图

GcExcel 提供了各种选项来自定义应用于工作表的显示设置。 您可以从预定义的视图中进行选择,也可以自定义视图设置以获得首选显示。 您还可以将自定义视图保存在工作簿中并在以后应用它们。

预定义视图

GcExcel 类似于 MS Excel,提供了预定义的视图,使用户在打印文档之前更容易预览页面布局和分页符。

  • 默认视图 - 工作表的默认视图

  • 页面布局视图 - 通过显示页面的开头和结尾(包括文档的页眉和页脚)来预览要打印的文档。

  • 分页符视图 - 显示要打印的文档中分页符的位置。



这些预定义的视图可以使用 IWorksheetView 接口的 setViewType  方法设置。

// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getActiveSheet();
        
worksheet.getRange("J12").setValue(1);
        
//Set the view mode of the worksheet to PageBreakPreview.
worksheet.getSheetView().setViewType(ViewType.PageBreakPreview);

//Modify the zoom of the PageBreakPreview to 80%.
worksheet.getSheetView().setZoom(80);

workbook.save("PageBreak.xlsx");

查看设置

为了按照自己的喜好查看工作表,用户可以使用的方法 IWorksheet 界面、IPane 界面和IWorksheetView 界面。

下表描述了一些可用于在处理工作表时自定义视图设置的方法。

方法

描述

IWorksheet.splitPanes(int row, int column)

此方法可用于锁定工作表中的行和列,以将工作表划分为多个区域,这些区域可以独立滚动。用户需要在此方法中提供单元格索引作为参数,以指定他们想要拆分的位置。

IWorksheet.unsplitPanes(int row, int column)

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

IWorksheet.getSplitRow

IWorksheet.getSplitColumn

此方法从顶部(在行的情况下)或从左边(在列的情况下)获取分割距离(行数和列数)。

IWorksheet.getPanes

一个范围对象,代表工作表的冻结或拆分窗格。

IWorksheet.getActivePane

此方法可用于获取工作表中的活动窗格。

IPane.activate()

此方法激活当前窗格。

IPane.getIndex

此方法可用于获取IWorksheet.Panes中当前窗格的索引。

IPane.setScrollColumn

IPane.setScrollRow

此方法可用于获取或设置当前窗格的左上角单元格位置。

IWorksheet.getSheetView

此方法可用于获取工作表的视图。

IWorksheetView.setZoom

此方法可用于获取和设置一个可变的数值,该数值表示工作表的显示尺寸,以百分比表示,其中100等于正常尺寸,200等于两倍尺寸,依此类推。

IWorksheetView.setGridlineColor

此方法可用于获取和设置网格线颜色。

IWorksheetView.setScrollColumn

此方法可用于获取和设置工作表中最左边的列的编号。

IWorksheetView.setScrollRow

此方法可用于获取和设置出现在工作表顶部的行号。

IWorksheetView.setDisplayRightToLeft

此方法可用于获取和设置是否从右到左而不是从左到右显示指定的工作表。

IWorksheetView.setDisplayFormulas

此方法可用于获取和设置工作表是否显示公式。

IWorksheetView.setDisplayGridlines

此方法可用于获取和设置是否显示网格线。

IWorksheetView.setDisplayVerticalGridlines

此方法可用于获取和设置是否显示垂直网格线。

IWorksheetView.setDisplayHorizontalGridlines

此方法可用于获取和设置是否显示水平网格线。

IWorksheetView.setDisplayHeadings

此方法可用于获取和设置是否显示标题。

IWorksheetView.setDisplayOutline

此方法可用于获取和设置是否显示轮廓符号。

IWorksheetView.setDisplayRuler

此方法可用于获取和设置是否为指定的工作表显示标尺。

IWorksheetView.setDisplayWhitespace

此方法可用于获取和设置是否显示空白。

IWorksheetView.setDisplayZeros

此方法可用于获取和设置是否显示零值。

为了使用IWorksheet界面的不同方法为工作表设置自定义视图,请参考以下示例代码。

// Configure Sheet Settings
Workbook workbook = new Workbook();
        
// Fetch the default worksheet
IWorksheet worksheet = workbook.getWorksheets().get(0);
        
// Assign the values to the cells
worksheet.getRange("B1").setValue("ABCD");
worksheet.getRange("B2").setValue(3);
worksheet.getRange("C1").setValue("GrapeCity Documents");
worksheet.getRange("C2").setValue(4);
worksheet.getRange("D1").setValue("GcExcel");
worksheet.getRange("D2").setValue("ABCD");
worksheet.getSheetView().setDisplayRightToLeft(true);

下面的代码片段显示了如何使用SplitPanes()方法将工作表拆分为多个窗格。

// Split worksheet to panes using splitPanes() method.
worksheet.splitPanes(worksheet.getRange("B3").getRow(), worksheet.getRange("B3").getColumn());

以下代码段显示了如何使用setDisplayVerticalGridlines和setDisplayHorizontalGridlines方法显示工作表的垂直和水平网格线。这些网格线仅在通过执行JSON I / O与SpreadJS交互时可见,而在Excel或PDF中不可见。

// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("A1:I88").setValue(10);

// Set to not show horizontal gridlines
worksheet.getSheetView().setDisplayHorizontalGridlines(false);

// Set to show vertical gridlines
worksheet.getSheetView().setDisplayVerticalGridlines(true);

// Save workbook to ssjson
String json = workbook.toJson();
try {
    BufferedWriter out = new BufferedWriter(
            new OutputStreamWriter(new FileOutputStream("HorizontalVerticalGridlines.ssjson"), "utf-8"));
    out.write(json);
    out.flush();
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}

注意: 如果设置了setDisplayGridlines的值,则setDisplayVerticalGridlines和setDisplayHorizontalGridlines也会设置为相同的值。