首页
学习
活动
专区
工具
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来配置表格列和行的数据。每个列与二维列表的每个元素进行绑定,以实现数据的展示。

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

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

相关·内容

  • 【腾讯云 TDSQL-C Serverless 产品体验】大数据时代下,利用TDSQL Serveless轻松管理Excel数据并生成名片卡

    在当今科技快速发展的时代,数据处理和应用已经成为各行各业不可或缺的一部分。而在许多工作场景中,我们经常需要将Excel表格中的数据导入数据库,并以某种方式进行进一步处理和呈现。而随着云计算的普及,TDSQL Serveless作为一种新兴的数据库服务形式,为我们提供了更加灵活、高效的数据管理解决方案。本文将重点探讨如何利用TDSQL Serveless进行数据库表格的批量导入与读取,并结合具体实例,展示如何快速生成名片卡。名片卡作为一种常见的商务工具,承载了信息交流和社交背景的重要功能。通过将Excel中的个人信息与数据库相结合,我们可以在不费力的情况下生成个性化的名片卡,从而提高工作效率和用户体验。

    04
    领券