简体   繁体   English

在Vaadin 14中使用Excel导出网格

[英]Exporting grid in excel in Vaadin 14

I created the grid in vaadin. 我在vaadin中创建了网格。 Now I need to export that grid in excel. 现在,我需要在Excel中导出该网格。 I am using Vaadin Exporter but I am not able to export the grid using exporter. 我正在使用Vaadin Exporter,但无法使用Exporter导出网格。

Grid<Transaction> grid = new Grid<>(Transaction.class);
Button exportInExcel = new Button("Export in excel", event -> exportInExcel());

private void exportInExcel() {
    new Anchor(new StreamResource("my-excel.xlsx", Exporter.exportAsExcel(grid)), "Download As Excel");
}

How can I export the grid in excel in vaadin 14 如何在Vaadin 14中的Excel中导出网格

That work for me: 对我有用:

@Route(value = "erwachsenentraining", layout = MainLayout.class)
@PageTitle(Constants.ERWACHSENENTRAINING)
@Secured(Role.ADMIN)
public class ErwachsenenTraining extends VerticalLayout {

    private ErwachseneRepository erwachseneRepository;
    Grid<Erwachsene> grid;

    public ErwachsenenTraining(ErwachseneRepository erwachseneRepository) {
        this.erwachseneRepository = erwachseneRepository;

        grid = new Grid();
        ListDataProvider<Erwachsene> dataProvider = DataProvider.ofCollection(erwachseneRepository.findAll());
        grid.setDataProvider(dataProvider);
        grid.addColumn(Erwachsene::getEmail).setKey("email").setWidth("270px").setHeader("Email").setFlexGrow(5);
        grid.addColumn(u -> u.getFirstName() + " " + u.getLastName()).setKey("firstName").setHeader("Name").setWidth("200px").setFlexGrow(5);
        grid.addColumn(Erwachsene::getRole).setKey("role").setHeader("Role").setWidth("150px");

        add(grid);
        add(new Anchor(new StreamResource("Erwachsenen_Training.xlsx", Exporter.exportAsExcel(grid)), "Download als Excel"));
    }
}

// Print
// JavaScript.getCurrent().execute("print();");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM