[]
        
(Showing Draft Content)

图表表单

有时,用户发现很难在同一工作表中同时容纳数据和图表。因此,GcExcel现在允许用户将图表添加到单独的工作表中,称为“图表表单”。与工作表不同,图表工作表只能包含图表。这有助于避免同一工作表中常见的数据和嵌入图表的混乱。此外,使用图表页,用户可以在打印时详细阅读图表并更改页面方向。

可以使用IWorksheets.Add(SheetType.Chart)方法在工作簿中创建图表表单。此外,还可以使用 IShapes.AddChart 方法将图表添加到图表工作表中。用户可能会注意到,每个图表页都应该有一个图表,否则在保存文件时会引发异常。

下表列出了GcExcel中与图表表相关的方法和属性:

方法/属性

描述

Add(SheetType.Chart)

IWorksheets 接口中的 Add方法具有带有 'SheetType'的重载。 因此,要添加图表表单,需要使用 SheetType.Chart方法。

AddChart

IShapes 接口中的 AddChart 方法为图表表单添加一个图表。

注意: 每张图表表单都应该有一张图表。否则,它将在保存文件时引发异常。

AddShape

IChart 接口中的 AddShape 方法为图表页添加多个形状。支持的用户形状有形状、图表、图片、连接器等。 在这种情况下,第一个图表是主图表,保存文件时将丢弃其他形状。

SheetType

IWorksheet 接口中的SheetType属性获取当前工作表(工作表或图表工作表)的类型。

Delete

IShape 接口中的 Delete 方法从图表工作表中删除图表,或者从图表中删除用户形状。

Copy

IWorksheet 接口中的 Copy 方法复制一个新的图表表单。

Move

IWorksheet 接口中的 Move 方法将图表工作表移动到当前工作簿或新工作簿中的新位置。

以下各节详细讨论工作簿中的图表表单操作。

添加图表表单

要添加图表表单,请参阅以下代码:

private static Workbook AddChartSheet() {
    // Initialize workbook
    Workbook workbook = new Workbook();
    // Fetch default worksheet
    IWorksheet worksheet = workbook.getWorksheets().get(0);

    worksheet.getRange("A1:E5")
            .setValue(new Object[][] { 
                { "Region", "Q1", "Q2", "Q3", "Q4" }, 
                { "North", 100, 300, 200, 600 },
                { "East", 400, 200, 500, 800 }, 
                { "South", 300, 500, 100, 400 },
                { "West", 400, 200, 600, 100 }, });

    // Add a Chart Sheet
    IWorksheet chartSheet = workbook.getWorksheets().add(SheetType.Chart);

    // Add the main chart for the chart sheet
    IShape mainChart = chartSheet.getShapes().addChart(ChartType.ColumnClustered, 100, 100, 200, 200);
    mainChart.getChart().getChartTitle().setText("Sales 2018-2019");
    mainChart.getChart().getSeriesCollection().add(worksheet.getRange("A1:E5"));

    // Add a user shape for the main chart.
    IShape shape = mainChart.getChart().addShape(AutoShapeType.Rectangle, 50, 20, 100, 100);
    shape.getTextFrame().getTextRange()
            .add("This chart displays the regional quarterly sales for the year 2018-2019");

    // Saving workbook to Xlsx
    workbook.save("381-AddChartSheet.xlsx", SaveFileFormat.Xlsx);
    return workbook;

复制并移动图表表单

复制和移动图表表单,请参阅以下示例代码:

private static void CopyMoveChartSheet() {
    Workbook workbook = AddChartSheet();

    // Add additional worksheets
    workbook.getWorksheets().add(SheetType.Worksheet);
    workbook.getWorksheets().add(SheetType.Worksheet);

    // Access ChartSheet
    IWorksheet chartSheet = workbook.getWorksheets().get(1);

    // Copies the chart sheet to the end of the workbook and save it
    chartSheet.copy();
    // Saving workbook to Xlsx
    workbook.save("382-CopyChartsheet.xlsx", SaveFileFormat.Xlsx);

    // Moves the chart sheet to the end of the workbook and save it
    chartSheet.move();
    // Saving workbook to Xlsx
    workbook.save("382-MoveChartsheet.xlsx", SaveFileFormat.Xlsx);

删除图表表单

要删除图表页,请参阅以下示例代码:

private static void DeleteChartSheet() {
    Workbook workbook = AddChartSheet();

    // Access ChartSheet
    IWorksheet chartSheet = workbook.getWorksheets().get(1);

    // Deletes the chart sheet
    chartSheet.delete();

    // Saving workbook to Xlsx
    workbook.save("384-NoChartsheet.xlsx", SaveFileFormat.Xlsx);