0
Apache POI를 사용하여 xls 파일의 차트에서 실제 시리즈 데이터와 값을 추출하고 싶습니다. Point 아래 그림과 같이 쌍 (15.44956728, 7)과 같은 값. 필자는 차트의 제목을 추출 할 수는 있었지만 필요한 데이터로는 수행 할 수 없었습니다.Excel에서 차트 값 읽기 Apache POI를 사용하는 차트 데이터 시리즈 HSSF
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.hssf.usermodel.HSSFChart;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println("Hello, World");
InputStream inp;
try {
inp = new FileInputStream("USRAK_00017_0.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp));
ExcelExtractor extractor = new ExcelExtractor(wb);
extractor.setFormulasNotResults(true);
extractor.setIncludeSheetNames(true);
String text = extractor.getText();
//System.out.println(text);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFChart[] sheetCharts = HSSFChart.getSheetCharts(sheet);
System.out.println(sheetCharts[0].getSeries()[0].getSeriesTitle());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
당신이'시도 않았다 차트에서 추출 할 부분을 구문 분석 할 수 sheetCharts [0] .getSeries() [0] .getDataValues'? – XtremeBaumer
@XtremeBaumer 이것이 LinkedDataRecord를 반환합니다. –
예, 값이 시트 데이터에서 오는 경우 [LinkedDataRecord.getFormulaOfLink] (https://poi.apache.org/apidocs/org/apache/poi/hssf/record/chart/LinkedDataRecord .html # getFormulaOfLink--)는 [Area3DPtg] (https://poi.apache.org/apidocs/org/apache/poi/ss/formula/ptg/Area3DPtg.html) 배열을 제공합니다. 이것은 내가 더 보일 곳입니다. –