#java #excel #linux #apache-poi
Вопрос:
Мне нужно прочитать ячейки из XLSX. Я использую POI Apache, но я не знаю, в чем ошибка.
Это мой код:
import java.io.IOException; import java.io.FileNotFoundException; import java.io.*; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; public class miniwolfi { public static void main(String[] args) throws IOException { File excel = new File("/tmp/table.xlsx"); FileInputStream fis = new FileInputStream(excel); XSSFWorkbook wb = new XSSFWorkbook(fis); double result = wb.getSheetAt(0).getRow(0).getCell(0).getNumericCellValue(); System.out.println(result); fis.close(); } }
И ошибка
java.io.FileNotFoundException: /tmp/таблица.xlsx (No such file or directory) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:219) at java.base/java.io.FileInputStream.lt;initgt;(FileInputStream.java:157) at miniwolfi.main(miniwolfi.java:17)
Может быть, ошибка-это путь к XLSX. Как я могу это исправить?
Комментарии:
1. Исключение довольно очевидное. Там нет никакого файла
/tmp/таблица.xlsx
. Но это исключение не соответствует предоставленному вами коду. Код пытается открыть файл/tmp/table.xlsx
. Таким образом, этот код не может вызвать это исключение. Пожалуйста, покажите код, который вызывает исключение.
Ответ №1:
Сначала проверьте, является ли файл файлами xlsx или xls, и у вас есть разрешения,
Ваша ошибка в том, что файл не найден
Я бы написал это следующим образом и использовал try-with-ресурсы
File excel = new File("/tmp/table.xlsx"); try(FileInputStream fis = new FileInputStream(excel);){ XSSFWorkbook wb = new XSSFWorkbook(fis); double result = wb.getSheetAt(0).getRow(0).getCell(0).getNumericCellValue(); System.out.println(result); }
Комментарии:
1. правильный путь к файлу?
2. Имя файла в коде не совпадает с исключением. Есть ли проблема со специальными символами?