首先,確保妳已經添加了 Apache POI 的依賴到妳的項目中。如果妳使用 Maven,可以在妳的 pom.xml 文件中添加以下依賴:
xml復制代碼
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
接下來,使用以下 Java 代碼解析 Excel 圖表:
java復制代碼
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelChartParser {
public static void main(String[] args) {
try {
FileInputStream fileInputStream = new FileInputStream(new File("your-file.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
XSSFSheet sheet = workbook.getSheetAt(0); // 獲取第壹個工作表
for (int i = 0; i < sheet.getCharts().size(); i++) {
XSSFChart chart = sheet.getChart(i);
if (chart != null) {
// 獲取圖表標題
XSSFChartTitle chartTitle = chart.getTitle();
if (chartTitle != null) {
System.out.println("Chart Title: " + chartTitle.getTitleText());
}
// 獲取圖例標題
XSSFChartLegend legend = chart.getLegend();
if (legend != null) {
System.out.println("Legend Position: " + legend.getPosition());
}
// 獲取 X 軸標題
XSSFValueAxis xAxis = chart.getAxes().get(0);
if (xAxis != null) {
XSSFChartAxisTitle xAxisTitle = xAxis.getTitle();
if (xAxisTitle != null) {
System.out.println("X Axis Title: " + xAxisTitle.getTitleText());
}
}
// 獲取 Y 軸標題
XSSFValueAxis yAxis = chart.getAxes().get(1);
if (yAxis != null) {
XSSFChartAxisTitle yAxisTitle = yAxis.getTitle();
if (yAxisTitle != null) {
System.out.println("Y Axis Title: " + yAxisTitle.getTitleText());
}
}
}
}
workbook.close();
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
這個示例代碼會打開壹個名為 "your-file.xlsx" 的 Excel 文件,並解析其中的圖表。它首先獲取到工作表(sheet)中的所有圖表,然後遍歷這些圖表。對於每個圖表,它獲取並輸出圖表標題、圖例標題、X 軸標題和 Y 軸標題。請將 "your-file.xlsx" 替換為妳要解析的實際文件名。