Как считывать ячейки из xlsx

#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. Имя файла в коде не совпадает с исключением. Есть ли проблема со специальными символами?