XSSFWorkbook是Apache POI庫中用于操作Excel文件的類。它可以用于創建、讀取、寫入和修改Excel文件。在XSSFWorkbook中,可以使用圖表功能來向Excel文件添加各種類型的圖表,如折線圖、柱狀圖、餅圖等。
要向Excel文件添加圖表,首先需要創建一個XSSFSheet對象,并在該對象上添加數據。然后使用XSSFWorkbook的createChart方法創建一個圖表對象,并將其添加到XSSFSheet中。最后,通過設置圖表的數據范圍、標題、軸標簽等屬性來定制圖表。最常用的圖表類型是XSSFChart的枚舉類型,包括BAR(柱狀圖)、LINE(折線圖)和PIE(餅圖)等。
以下是一個簡單的示例,演示如何在Excel文件中創建一個柱狀圖:
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Chart Data");
// 添加數據
Row row = sheet.createRow(0);
row.createCell(0).setCellValue("Category");
row.createCell(1).setCellValue("Value 1");
row.createCell(2).setCellValue("Value 2");
row = sheet.createRow(1);
row.createCell(0).setCellValue("A");
row.createCell(1).setCellValue(10);
row.createCell(2).setCellValue(20);
row = sheet.createRow(2);
row.createCell(0).setCellValue("B");
row.createCell(1).setCellValue(15);
row.createCell(2).setCellValue(25);
// 創建柱狀圖
XSSFChart chart = workbook.createChart(sheet, XSSFChart.CHART_BAR);
// 設置圖表數據范圍
XDDFNumericalDataSource<Double> category = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 0, 0));
XDDFNumericalDataSource<Double> values1 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 1, 1));
XDDFNumericalDataSource<Double> values2 = XDDFDataSourcesFactory.fromNumericCellRange(sheet, new CellRangeAddress(1, 2, 2, 2));
XDDFChartData data = chart.createData(ChartTypes.BAR, null, null);
data.addSeries(category, values1);
data.addSeries(category, values2);
// 設置圖表標題
chart.setTitleText("Bar Chart");
chart.setTitleOverlay(false);
// 繪制圖表
XDDFChartLegend legend = chart.getOrAddLegend();
legend.setPosition(LegendPosition.TOP);
// 保存Excel文件
FileOutputStream fileOut = new FileOutputStream("chart.xlsx");
workbook.write(fileOut);
fileOut.close();
workbook.close();
通過上面的代碼示例,可以在Excel文件中創建一個柱狀圖,并設置圖表的標題、數據范圍和其他屬性。可以根據需要修改代碼,創建不同類型的圖表和定制化圖表樣式。