可以通过GcExcel来实现组合图,GcExcel支持各种Excel图表,具体可以参考:
"图表类型 - GcExcel 中文文档Java版 | 服务端高性能表格组件 - 葡萄城" (https://link.segmentfault.com/?enc=cPhIXTGxu1Na7unCG0yXwA%3D%3D.ERQQJG%2FmQRLXRys7L5sN1%2FlWJ0kD4z1wyV9NBb1NWpVWMujZO0w2h%2FhNAJ9sNg3GYK1NIUcGO5HrVmK3MoXBLJ8Z4tQkoiSyBhCVafz0DPeBpOeAp9LVHYkue%2FOzZtj3MxaBetQjC9eKqSr4SbN4fwrYf%2BrL5Z0EKnAmYpkngP0%3D)
生成组合图的代码如下:
public void ComboCharts(){
// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
IShape shape = worksheet.getShapes().addChart(ChartType.ColumnClustered, 250, 20, 360, 230);
worksheet.getRange("A1:B13").setValue(new Object[][]{
{"Blue Column", "Red Line"},
{75, 20},
{149, 50},
{105, 30},
{55, 80},
{121, 40},
{76, 110},
{128, 50},
{114, 140},
{75, 60},
{105, 170},
{145, 70},
{110, 100}
});
shape.getChart().getSeriesCollection().add(worksheet.getRange("A1:B13"), RowCol.Columns);
shape.getChart().getChartTitle().setText("Combination Chart");
//change series type
ISeries series2 = shape.getChart().getSeriesCollection().get(1);
series2.setChartType(ChartType.LineMarkers);
// Save to an excel file
workbook.save("output/CombinationChart1.xlsx");
}
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241105/b1bc7cdb36eb8126c7bfd5578de85357.png)