首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

读取Excel并将其显示在tableview上。使用二维数组或列表填充TableView

读取Excel并将其显示在TableView上可以通过以下步骤实现:

  1. 首先,需要使用相应的库或框架来读取Excel文件。在Java中,可以使用Apache POI库来处理Excel文件。你可以使用以下代码示例来读取Excel文件:
代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;

public class ExcelReader {
    public static void readExcel(String filePath) {
        try {
            Workbook workbook = WorkbookFactory.create(new File(filePath));
            Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
            DataFormatter dataFormatter = new DataFormatter();

            for (Row row : sheet) {
                for (Cell cell : row) {
                    String cellValue = dataFormatter.formatCellValue(cell);
                    System.out.print(cellValue + "\t");
                }
                System.out.println();
            }

            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码通过创建Workbook对象打开Excel文件,并使用SheetRow对象遍历Excel表格中的所有单元格。使用DataFormatter可以将每个单元格的值格式化为字符串。

  1. 接下来,需要将读取的Excel数据填充到TableView中。TableView是JavaFX提供的表格视图组件,可用于显示表格数据。可以使用以下代码示例将Excel数据填充到TableView中:
代码语言:txt
复制
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ExcelTableView extends Application {
    private TableView<ObservableList<String>> tableView = new TableView<>();

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

    @Override
    public void start(Stage primaryStage) {
        String filePath = "path/to/excel.xlsx";
        ExcelReader.readExcel(filePath); // 调用ExcelReader的readExcel方法读取Excel数据

        primaryStage.setTitle("Excel TableView");
        VBox vbox = new VBox(tableView);
        Scene scene = new Scene(vbox, 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public void populateTableView(List<List<String>> data) {
        // 创建TableColumn对象,定义每一列的标题和数据绑定的属性
        for (int i = 0; i < data.get(0).size(); i++) {
            final int colIndex = i;
            TableColumn<ObservableList<String>, String> column = new TableColumn<>("Column " + (i+1));
            column.setCellValueFactory(cellData -> {
                List<String> row = cellData.getValue();
                if (colIndex >= row.size()) {
                    return new SimpleStringProperty("");
                }
                return new SimpleStringProperty(row.get(colIndex));
            });
            tableView.getColumns().add(column);
        }

        // 创建ObservableList对象,用于存储Excel数据
        ObservableList<ObservableList<String>> tableData = FXCollections.observableArrayList();
        for (List<String> rowData : data) {
            tableData.add(FXCollections.observableArrayList(rowData));
        }
        tableView.setItems(tableData);
    }
}

上述代码中,populateTableView方法接收一个二维列表(data),将数据填充到TableView中。该方法使用TableColumn和ObservableList来配置表格列和行的数据。每个列与二维列表的每个元素进行绑定,以实现数据的展示。

请注意,上述代码仅为示例,需要根据实际情况进行适当的修改和完善。此外,还可以根据需要自定义表格样式、添加排序、筛选、编辑等功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券