Я получаю исключение IOException с приведенным ниже кодом. В чем проблема? Я хочу прочитать файл Excel xlsm и xls или xlsx через диалоговое окно filedialog после импорта, прочитать Excel и работать с ним.
public class start {
public static void main(String[] args) throws IOException, InvalidFormatException {
JFrame yourJFrame = new JFrame();
FileDialog fd = new FileDialog(yourJFrame, "Choose a file", FileDialog.LOAD);
fd.setVisible(true);
String filename = fd.getFile();
String filepth = fd.getDirectory();
Workbook workbook = WorkbookFactory.create(new File(filepth + filename));
System.out.println("Workbook has " + workbook.getNumberOfSheets() + " Sheets : ");
Iterator<Sheet> sheetIterator = workbook.sheetIterator();
System.out.println("Retrieving Sheets using Iterator");
while (sheetIterator.hasNext()) {
Sheet sheet = sheetIterator.next();
System.out.println("=> " + sheet.getSheetName());
}
String
DataFormatter dataFormatter = new DataFormatter();
System.out.println("\n\nIterating over Rows and Columns using Iterator\n");
Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
String cellValue = dataFormatter.formatCellValue(cell);
System.out.print(cellValue + "\t");
}
System.out.println();
}
workbook.close();
}
}
@JoopEggen Я пробовал использовать JFileChooser, но все еще есть исключение FileNotFoundException?
С JFileChooser используется getSelectedFile(). Пример кода должен быть в www. Однако я не вижу кода чтения. Проверьте и Интернет. Я должен уйти.
JFileChooser fc = new JFileChooser(); int rueckwrt = fc.showOpenDialog(null); if (rueckwrt == JFileChooser.APPROVE_OPTION) { String filename = fc.getSelectedFile().getName(); String filepth = fc.getSelectedFile().getPath(); System.out.println(filename); вот что я сделал
Выглядит неплохо. Таким образом, файл, вероятно, был найден обоими способами, но код apache-poi неисправен.
похоже, проблема в этой строке: Workbook workbook = WorkbookFactory.create(new File(filepth + File.separator + filename));




JFileChooser- это компонент Swing, который следует использовать вместоFileDialog(AWT). Не уверен, что это не должно бытьnew File(filepth + File.separator + filename)