открыть файл Excel в виде таблицы с помощью filechooser - PullRequest
0 голосов
/ 22 февраля 2019

У меня небольшая проблема.Я хочу отобразить файл Excel в виде таблицы.Я хотел бы выбрать файл с помощью filechooser и отобразить его в виде таблицы.

Я попробовал его с teaxtarea в качестве примера, и он работал чудесно.Мне нужно это в виде таблицы.Я был бы признателен, если бы вы могли мне помочь.

Я программирую это с помощью JavaFX

Я покажу вам, как я это сделал с текстовой областью.

Я уже создалвид таблицы отдельно.Мне просто нужен пример того, как я могу вставить его в табличное представление.

Я открываю файл excel, используя apache poi.

public class ReadExcel extends Application {

Pane pane = new Pane();
Button button = new Button("Hier");
Desktop desktop = Desktop.getDesktop();
TextArea textarea = new TextArea();

public void start(Stage primaryStage) throws IOException {

    Scene scene = new Scene(pane);

    scene.getStylesheets().add("style.css");
    primaryStage.setTitle("GBO-Tool");
    primaryStage.setScene(scene);
    primaryStage.show();
    textarea.setLayoutX(100);
    textarea.setLayoutY(100);

    pane.getChildren().addAll(button, textarea);

    FileChooser filechooser = new FileChooser();
    button.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent e) {
            File file = filechooser.showOpenDialog(primaryStage);
            if (file != null) {
                try {
                    readExcel();
                } catch (IOException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        }
    });
}

public void readExcel() throws IOException {
    String excelfile = "Gesamtpunktzahl.xlsx";
    FileInputStream is = new FileInputStream(newFile(excelfile));
    Workbook wb = new XSSFWorkbook(is);
    Sheet sheet = wb.getSheetAt(0);
    Iterator<Row> iterator = sheet.iterator();
    while (iterator.hasNext()) {
        Row nextRow = iterator.next();
        Iterator<Cell> cellIterator = nextRow.cellIterator();

        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();

            switch (cell.getCellType()) {
            case STRING:
                textarea.appendText(cell.getStringCellValue() + "\n");
                break;
            case BOOLEAN:
                textarea.appendText(cell.getBooleanCellValue() + "\n");
                break;
            case NUMERIC:
                textarea.appendText(cell.getNumericCellValue() + "\n");
                break;
            }
            textarea.appendText("\n");
        }
    }
    wb.close();
    is.close();
}

private static String newFile(String excelfile) {
    return excelfile;
    // TODO Auto-generated method stub

}

public static void main(String[] args0) {
    launch();

}

}

...