Показать компонент электронных таблиц в Vaadin - PullRequest
0 голосов
/ 09 марта 2019

Я использую 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):

Не удается разрешить метод 'add (com.vaadin.addon.spreadsheet.Spreadsheet)'

  • Как открыть Excel с указанным путем? Правильный путь, который я написал? Или это должно быть "C:/Users/MY_USERNAME/Desktop"

1 Ответ

4 голосов
/ 09 марта 2019

Компонент Spreadsheet не совместим с Vaadin 10+ (только Vaadin7 / 8).

Как вы можете видеть в комментариях здесь https://vaadin.com/blog/vaadin-s-frontend-direction сказано:

Последняя часть - это Spreadsheet, и она немного хитрая.Он построен на основе POI напрямую, и большая часть логики происходит на стороне сервера, поэтому он не может работать как отдельный веб-компонент на стороне клиента без значительных изменений в архитектуре.Сегодня у нас нет планов превращать его в веб-компонент, но у нас есть пара перспективных направлений, которые мы рассматриваем, которые могут привести к появлению потока.Во-первых, мы ищем инструмент миграции или оболочку от 8 до 10. Он в основном встраивает приложение Vaadin 8 в приложение Vaadin 10.У нас есть подтверждение концепции с Spreadsheet для FW8, обернутой отдельно и встроенной в полноценное приложение Vaadin 10.Другой вариант - это подтверждение концепции взятия скомпилированного виджета Vaadin 8 GWT и создания вокруг него веб-компонента, который можно найти здесь: https://github.com/Legioth/connector-element. По сути, он заменяет серверный аналог Vaadin 8 и перехватывает сам себядо разъема виджета.Это может позволить нам скомпилировать виджет Spreadsheet в веб-компонент, перенести серверную часть Spreadsheet в Flow и подключить серверную часть обратно к веб-компоненту.Однако у нас нет никаких конкретных планов относительно того, собираемся ли мы это сделать.

...