0

我正在使用 Vaadin 10,我想向用户显示电子表格。但是,下面的方法给了我一个错误:

public class SomeUI extends VerticalLayout{

   private SomeUI(){

       // ... some add(Components)
       String path = "C:\\Users\\MY_USERNAME\\Desktop";
       Spreadsheet sp = ExcelOpener.openFile(path);

       // this line does not work
       // add(sp);
   }
}

下面是 ExcelOpener 助手类:

public class ExcelOpener {

    public static Spreadsheet openFile(String path){
        // I will use the path to open given excel later.
        // Right now I want to open an empty spreadsheet and show it to the user
        Spreadsheet spreadsheet = null;
        spreadsheet = new Spreadsheet();

        return spreadsheet;
    }
}

我的问题是:

  • 如何解决 add(sp) 方法的错误:

无法解析方法“添加(com.vaadin.addon.spreadsheet.Spreadsheet)”

  • 如何使用给定路径打开 Excel?我写的路径是否正确?或者应该是"C:/Users/MY_USERNAME/Desktop"
4

1 回答 1

4

电子表格组件与 Vaadin 10+(仅 Vaadin7/8)不兼容。

正如您在此处的评论中看到的那样https://vaadin.com/blog/vaadin-s-frontend-direction据说:

最后一部分是电子表格,这有点棘手。它直接构建在 POI 之上,并且大部分逻辑都发生在服务器端,因此如果没有架构上的重大转变,它就不能真正作为独立的客户端 Web 组件工作。我们今天没有计划将其变成 Web 组件,但我们正在研究一些有希望的途径,可以将其带到 Flow 中。第一个是我们正在研究从 8 到 10 的迁移工具或包装器。它基本上将 Vaadin 8 应用程序嵌入到 Vaadin 10 应用程序中。我们有一个单独包装并嵌入在完整 Vaadin 10 应用程序中的 FW8 电子表格的概念证明。另一个选项是采用已编译的 Vaadin 8 GWT 小部件并围绕它构建 Web 组件的概念证明,可在此处找到:https://github.com/Legioth/connector-element。从本质上讲,它取代了 Vaadin 8 的服务器端对应物,并将自身连接到小部件的连接器。这可以使我们能够将电子表格小部件编译成 Web 组件,将电子表格的服务器端迁移到 Flow,并将服务器端连接回 Web 组件。但是,我们没有任何具体的计划来说明我们是否要这样做。

于 2019-03-09T14:02:49.210 回答