그래서 저는 엑셀 파일을 배열로 읽어 들인 다음 그 데이터를 사용하고 조작하고 사용자에게 답변을 제공해야하는 학교 프로젝트를 진행하고 있습니다. 파일을 배열과 동일하게 설정하는 방법을 알아낼 수 없으며 거기에서 특정 데이터 비트를 가져옵니다. 어떤 도움을 주시면 감사하겠습니다. 실제 질문 프롬프트는 다음과 같습니다.
미국과 관련된 데이터가 포함 된 파일을 읽는 Java 애플리케이션을 설계합니다. 1994-2013 년 범죄 통계. 파일에 대한 설명은 다음과 같습니다. 응용 프로그램은 데이터에 대한 통계 결과를 제공해야합니다. 배열 및 Java 클래스를 사용하여 데이터를 저장하십시오. (힌트 : 필드를 저장하기 위해 USCrimeClass를 만들 수 있고 만들어야합니다. 또한 미국 범죄 개체 배열을 가질 수도 있습니다.)
나는 이것을 공식 사이트에서 복사하여 가이드 라인으로 TODO 라인을 추가했습니다. 이 개요를 따르면 해결책을 찾을 수 있습니다. 나는 당신의 임무이기 때문에 정확한 대답을하지 않습니다.
하나의 Excel 행 == USCrimeClass 개체
Row 클래스에 매핑 된 클래스를 만들어야합니다. 해당 클래스의 이름은 USCrimeClass 여야합니다.
USCrimeClass
USCrimeClass에는 행의 셀에 매핑되는 필드가 있어야합니다.
예 :
1994-2013 년
셀 내용 얻기 셀의 내용을 얻으려면 먼저 그것이 어떤 종류의 셀인지 알아야합니다 (예를 들어 숫자 내용을 문자열 셀에 요청하면 NumberFormatException이 발생합니다). 따라서 셀의 유형을 켜고 해당 셀에 대한 적절한 getter를 호출 할 수 있습니다.
아래 코드에서 한 시트의 모든 셀을 반복하고 셀의 참조 (예 : A3)를 인쇄 한 다음 셀의 내용을 인쇄합니다.
// import org.apache.poi.ss.usermodel.*;
DataFormatter formatter = new DataFormatter();
Sheet sheet1 = wb.getSheetAt(0);
//TODO int numberOfRows=getNumberOf Rows from sheet1;
//TODO USCrimeClass[] arrayOfUSCrimeClass =new USCrimeClass [numberOfRows]();
for (Row row : sheet1) {
//TODO create new object of USCrimeClass
//TODO USCrimeClass objectUSCrimeClass=new USCrimeClass();
for (Cell cell : row) {
CellReference cellRef = new CellReference(row.getRowNum(), cell.getColumnIndex());
System.out.print(cellRef.formatAsString());
System.out.print(" - ");
// get the text that appears in the cell by getting the cell value and applying any data formats (Date, 0.00, 1.23e9, $1.23, etc)
String text = formatter.formatCellValue(cell);
System.out.println(text);
// Alternatively, get the value and format it yourself
switch (cell.getCellTypeEnum()) {
case CellType.STRING:
System.out.println(cell.getRichStringCellValue().getString());
//TODO set values to feild from excel cell objectUSCrimeClass.setFrom(cell.getRichStringCellValue().getString());
break;
case CellType.NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
break;
case CellType.BOOLEAN:
System.out.println(cell.getBooleanCellValue());
break;
case CellType.FORMULA:
System.out.println(cell.getCellFormula());
break;
case CellType.BLANK:
System.out.println();
break;
default:
System.out.println();
}
}
//TODO add row object to array or list arrayOfUSCrimeClass[i]=objectUSCrimeClass;
}
텍스트 추출
대부분의 텍스트 추출 요구 사항에 대해 표준 ExcelExtractor 클래스가 필요한 모든 것을 제공해야합니다.
InputStream inp = new FileInputStream("workbook.xls");
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp));
ExcelExtractor extractor = new ExcelExtractor(wb);
extractor.setFormulasNotResults(true);
extractor.setIncludeSheetNames(false);
String text = extractor.getText();
https://poi.apache.org/spreadsheet/examples.html
https://poi.apache.org/spreadsheet/quick-guide.html#Iterator
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다