Показать компонент электронной таблицы в Vaadin

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

person q293439    schedule 09.03.2019    source источник
comment
Какую версию электронной таблицы вы используете? Может быть тот, что для v8.   -  person cfrick    schedule 09.03.2019


Ответы (1)


Компонент электронной таблицы несовместим с Vaadin 10+ (только Vaadin7/8).

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

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

person codinghaus    schedule 09.03.2019