Вопрос

У меня проблема с проектом Apache POI.

Я не смог использовать XSSF а также HSSF в «То же класс Java». Отказ Какая банка я должен скачать или какой артефакт я должен добавить в Maven?

Я хочу справиться с обоими xls а также xlsx файлы одновременно. Когда я получаю ошибку версии Excel, я изменим XSSF к HSSF или HSSF к XSSF..

Как я могу это сделать?

Это было полезно?

Решение

Вместо этого попробуйте использовать новый выпуск Apache POI 3.7, он имеет пакет SS, который обрабатывает как HSSF, так и XSSF, не беспокоясь о типе

Детали здесь: http://poi.apache.org/spreadsheet/index.html.

Другие советы

Кроме «стандартного» решения SS пакета, вы также можете просто использовать if statement правильно загрузить право workbook format в ан Workbook interface Объект, как так:

Workbook workbook; //<-Interface, accepts both HSSF and XSSF.
File file = new File("YourExcelFile.xlsx");
if (FileUtils.getFileExt(file).equalsIgnoreCase("xls")) {
  workbook = new HSSFWorkbook(new FileInputStream(file));
} else if (FileUtils.getFileExt(file).equalsIgnoreCase("xlsx")) {
  workbook = new XSSFWorkbook(new FileInputStream(file));
} else {
  throw new IllegalArgumentException("Received file does not have a standard excel extension.");
}

Используйте завод вместо этого, которая обрабатывает как XSSF, так и HSSF

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

Workbook wb = WorkbookFactory.create(new File("file"))

Это работало для меня:

    filePath = "C:\Users\user1\workspace\myproject\Excel.xlsx"
    String extension = FilenameUtils.getExtension(filePath);
    System.out.println(extension);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top