Чтение листов Excel в java

79
6

Я делаю java-программу -using apache library-, которая читает из файла Excel, но проблема в том, что я определяю каждый лист, который я хочу открыть любой файл Excel, и могу выбрать любой лист, а также заполнить ComboBox с именем листа. (Я использую JComboBox для выбора листа).

Моя попытка:

FileInputStream fileInputStream = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);

int sheetNum = workbook.getNumberOfSheets();
for(int i = 0; i < sheetNum; i++) {
String sheetname = workbook.getSheetName(i);
chooseSheetComboBox.addItem(sheetname);
}

int choosenSheet = chooseSheetComboBox.getSelectedIndex();
XSSFSheet sheet = workbook.getSheetAt(choosenSheet);

спросил(а) 2021-01-19T20:42:06+03:00 9 месяцев, 1 неделя назад
1
Решение
102

Вы должны добавить обработчик событий по элементам поля со списком, сразу после заполнения его циклом:

  chooseSheetComboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
choosenSheet = chooseSheetComboBox.getSelectedIndex();
XSSFSheet sheet = workbook.getSheetAt(choosenSheet);
// complete your logic, maybe call a method that takes XSSFSheet in parameters
}
}
});

ответил(а) 2021-01-19T20:42:06+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема