1
Я получаю эту ошибку:Excel лист POI Workbook уже содержит лист
учебное пособие уже содержит лист этого имени
private void cleanDataSheets(XSSFWorkbook workbookTemplate) {
int numberOfQueries = extraction.getQueries().size();
// DATA[maxIndex][minIndex] --> ex : DATA00, DATA01, ..., DATA10
int maxIndex = 0;
int minIndex = 0;
String sheetName = DATA_SHEET_NAME + maxIndex + minIndex;
while (maxIndex < numberOfQueries) {
Sheet sheet = workbookTemplate.getSheet(sheetName);
if (sheet == null) {
maxIndex++;
minIndex = 0;
} else {
workbookTemplate.removeSheetAt(workbookTemplate.getSheetIndex(sheet));
if (minIndex == 0) {
if (workbookTemplate.getSheetIndex(sheetName) == -1) {
workbookTemplate.createSheet(sheetName);
}
}
minIndex++;
}
}
}
Линия if (workbookTemplate.getSheetIndex(sheetName)== -1)
должна проверить, в книге уже содержится лист этого имени, но он не работает. У меня все еще есть ошибка.
Благодарим за помощь!
Это происходит от первой итерации (у вас есть цикл while)? Можете ли вы привести пример, каковы имена листов? Кроме того, вы можете немного объяснить свой код, похоже, что он перебирает переменную 'maxIndex', но эта переменная увеличивается только внутри оператора' if', который проверяет 'sheet == null'. Я не знаю, чего вы хотите достичь, но выглядит немного странно. – pleft