在 excel 中,依据透视表生成的图表可以将透视表的结果以图形的形式展示出来,使数据更直观、易于理解以帮助用户更好地分析数据。图表也可以方便地导出为图片,便于与他人共享和在演示中使用。因此,通过透视表生成图表这一功能在各领域和行业都有广泛的应用。本文将介绍如何使用 spire.xls for java 在 excel 文档中根据透视表创建操作图表。
安装 spire.xls for java
首先,您需要将 spire.xls.jar 文件作为依赖项添加到您的 java 程序中。可以从此链接下载 jar 文件。如果您使用 maven,您可以通过将以下代码添加到项目的 pom.xml 文件中轻松地在应用程序中导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.xls
14.5.1
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 天的临时许可证。