在 Excel 中,依据透视表生成的图表可以将透视表的结果以图形的形式展示出来,使数据更直观、易于理解以帮助用户更好地分析数据。图表也可以方便地导出为图片,便于与他人共享和在演示中使用。因此,通过透视表生成图表这一功能在各领域和行业都有广泛的应用。本文将介绍如何使用 Spire.XLS for Java 在 Excel 文档中根据透视表创建操作图表。
安装 Spire.XLS for Java
首先,您需要将 Spire.Xls.jar 文件作为依赖项添加到您的 Java 程序中。可以从此链接下载 JAR 文件。如果您使用 Maven,您可以通过将以下代码添加到项目的 pom.xml 文件中轻松地在应用程序中导入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>14.11.0</version>
</dependency>
</dependencies>
Java 在 Excel 中根据透视表生成图表并设置图表
要在 Excel 中根据透视表创建图表并针对图表的一些设置,请按照以下步骤操作:
- 创建一个 Workbook 对象。
- 使用 Workbook.loadFromFile() 方法加载一个有透视表的 Excel 文档。
- 通过 Workbook.getWorksheets().get(index) 属性获取指定的工作表。
- 使用 Worksheet.getPivotTables().get(index) 属性从工作表中获取特定的透视表。
- 使用 Worksheet.getCharts().add(ExcelChartType,IPivotTable) 方法根据透视表创建指定类型的图表。
- 使用 Chart.setTopRow(int),Chart.setBottomRow(int),Chart.setLeftColumn(int),Chart.setRightColumn(int) 方法设置图表的行,列位置。
- 使用 Chart.getPrimaryValueAxis().hasMajorGridLines(boolean) 方法设置值轴不显示网格线。
- 使用 Chart.getLegend().setPosition(LegendPositionType) 方法设置图例位置。
- 使用 Chart.setChartTitle(String) 方法设置图表标题。
- 使用 Chart.getSeries().get(index) 获取图表第一个系列。
- 使用 ChartSerie.getFormat().getFill().setFillType(ShapeFillType) 设置图表系列填充类型。
- 使用 ChartSerie..getFormat().getFill().setForeColor(Color) 设置图表系列填充颜色。
- 使用 Workbook.saveToFile() 方法保存结果文档。
- 使用 Workbook.dispose() 方法释放文档对象。
- Java
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import com.spire.xls.core.IPivotTable;
public class pivotFieldChart
{
public static void main(String[] args) throws Exception
{
// 创建一个Workbook对象
Workbook workbook = new Workbook();
// 加载含有透视表的原Excel文档
workbook.loadFromFile("in.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
// 获取第一个数据透视表
IPivotTable pivotTable = sheet.getPivotTables().get(0);
// 使用数据透视表作为数据源添加一个柱状图表
Chart chart = workbook.getWorksheets().get(0).getCharts().add(ExcelChartType.ColumnClustered, pivotTable);
// 设置图表的行和列位置
chart.setTopRow(19);
chart.setBottomRow(37);
chart.setLeftColumn(1);
chart.setRightColumn(9);
// 设置值轴不显示网格线
chart.getPrimaryValueAxis().hasMajorGridLines(false);
// 设置图例位置为右侧
chart.getLegend().setPosition(LegendPositionType.Right);
// 设置图表标题
chart.setChartTitle("Count Statistics");
// 获取图表第一个系列
ChartSerie cs = chart.getSeries().get(0);
// 设置系列的填充类型及颜色
cs.getFormat().getFill().setFillType(ShapeFillType.SolidColor);
cs.getFormat().getFill().setForeColor(java.awt.Color.ORANGE);
// 保存文件
workbook.saveToFile("out.xlsx", ExcelVersion.Version2013);
// 释放对象
workbook.dispose();
}
}
Java 在 Excel 中刷新透视表及生成的图表数据
当透视表数据源发生改变后,使用 Spire.XLS for Java 可以设置数据透视表的缓存在加载时自动刷新。这样使得用透视表创建的图表数据也会跟着刷新,这样将确保透视表创建的图表数据与数据源同步,保证了数据分析的准确性。具体操作步骤如下:
- 创建一个 Workbook 对象。
- 使用 Workbook.loadFromFile() 方法加载含有透视表及透视表图表的原Excel文档。
- 通过 Workbook.getWorksheets().get(index) 属性获取特定的工作表。
- 使用 Worksheet.getRange().get(String).setValue("String") 修改数据源。
- 使用 Worksheet.getPivotTables().get(index) 属性从工作表中获取特定的透视表。
- 使用 XlsPivotTable.getCache().isRefreshOnLoad(boolean) 设置数据透视表的缓存在加载时自动刷新。
- 使用 Workbook.saveToFile() 方法保存结果文件。
- 使用 Workbook.dispose() 方法释放文档对象
- Java
import com.spire.xls.*;
import com.spire.xls.core.spreadsheet.pivottables.XlsPivotTable;
public class refreshChartData {
public static void main(String[] args) throws Exception {
// 创建一个Workbook对象
Workbook workbook = new Workbook();
// 加载原Excel文档
workbook.loadFromFile("in.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//修改C5数据源
sheet.getRange().get("C5").setValue( "1000000");
// 获取第一个数据透视表
XlsPivotTable pivotTable =(XlsPivotTable) sheet.getPivotTables().get(0);
// 设置数据透视表的缓存在加载时自动刷新
pivotTable.getCache().isRefreshOnLoad(true);
//保存结果文档
workbook.saveToFile("out.xlsx", ExcelVersion.Version2013);
// 释放对象
workbook.dispose();
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。