Я скопировал это с официального сайта и добавил несколько строк TODO в качестве руководства для вас. Вы найдете решение, следуя этому плану. Я не даю точного ответа, потому что это ваша задача.
Одна строка Excel == объект USCrimeClass
Вы должны создать класс, который сопоставляется с классом Row. Этот класс должен называться USCrimeClass.
Криминальный класс США
USCrimeClass должен иметь поля, которые сопоставляются с ячейками в строке.
пример :
с 1994-2013 гг.
Официальный справочник
Получение содержимого ячейки Чтобы получить содержимое ячейки, вам сначала нужно узнать, что это за ячейка (например, если запросить у строковой ячейки ее числовое содержимое, вы получите исключение NumberFormatException). Итак, вы захотите включить тип ячейки, а затем вызвать соответствующий геттер для этой ячейки.
В приведенном ниже коде мы перебираем каждую ячейку на одном листе, распечатываем ссылку на ячейку (например, 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
person
Sanka
schedule
15.10.2016