Есть массив и есть файл с таблицей Excel. При помощи библиотеки POI удаётся получить значения из таблицы, но как их задать в массив? Я знаю, что можно задать значения, "вручную" прописав для каждого элемента массива, но хочу сделать это автоматически, потому что предполагается, что количество значений в таблице будет меняться и каждый раз дописывать скрипт будет нецелесообразно.
public class Main {
public static void main(String[] args) throws IOException {
String[] wd = new String[5];
// Read XSL file
FileInputStream inputStream = new FileInputStream(new File("C:/My downloads/DutyList.xls"));
// Get the workbook instance for XLS file
HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
// Get first sheet from the workbook
HSSFSheet sheet = workbook.getSheetAt(0);
// Get iterator to all the rows in current sheet
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Get iterator to all cells of current row
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
// Change to getCellType() if using POI 4.x
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case _NONE:
System.out.print("");
System.out.print("\t");
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue());
System.out.print("\t");
break;
case BLANK:
System.out.print("");
System.out.print("\t");
break;
case FORMULA:
// Formula
System.out.print(cell.getCellFormula());
System.out.print("\t");
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
// Print out value evaluated by formula
System.out.print(evaluator.evaluate(cell).getNumberValue());
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue());
System.out.print("\t");
break;
case STRING:
System.out.print(cell.getStringCellValue());
System.out.print("\t");
break;
case ERROR:
System.out.print("!");
System.out.print("\t");
break;
}
Замените массив на список List<String>
, тогда Вы сможете дописывать элементы при помощи вызова метода list.add(value)
.
Вот пример:
List<String> list = new ArrayList<>();
...
case STRING:
list.add(cell.getStringCellValue())
...
Если же Вам в итоге нужен именно массив, Вы можете преобразовать список в массив при помощи команд:
String[] array = new String[list.size()];
list.toArray(array);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение
Есть блокcontainer в который динамически с помощью jquery добавляются div блоки нумерованные от 0 до 9