我正在使用Vaadin 10,并且想向用户显示电子表格。但是,以下方法给我一个错误:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnn'Z'")
下面是ExcelOpener帮助程序类:
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);
}
}
我的问题是:
无法解析方法'add(com.vaadin.addon.spreadsheet.Spreadsheet)'
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;
}
}
答案 0 :(得分:4)
电子表格组件与Vaadin 10+(仅Vaadin7 / 8)不兼容。
您可以在https://vaadin.com/blog/vaadin-s-frontend-direction的评论中看到它的意思:
最后一部分是电子表格,那有些棘手。它建立在 直接位于POI的顶部,并且大多数逻辑发生在服务器端, 因此它不能真正用作独立的客户端Web组件 在架构上没有重大变化。我们今天没有计划 使其成为一个Web组件,但是我们有两个有希望的途径 我们正在研究可以将其带入Flow的领域。第一个是 我们正在研究从8到10的迁移工具或包装器。 它基本上在Vaadin 10应用程序中嵌入了Vaadin 8应用程序。我们有一个 使用FW8的电子表格单独包装和嵌入的概念证明 在完整的Vaadin 10应用中。另一个选择是概念证明 采取已编译的Vaadin 8 GWT小部件并构建一个Web组件 可以在这里找到:https://github.com/Legioth/connector-element。 从本质上讲,它替代了Vaadin 8的服务器端副本 并将其自身连接到小部件的连接器。这可以使 我们将Spreadsheet小部件编译成一个Web组件,然后进行迁移 将Spreadsheet的服务器端连接到Flow,然后连接服务器端 回到Web组件。但是,我们没有任何关于 如果我们要这样做的话。