Как охватить строки и столбцы с помощью pe: sheet? - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь создать приложение, в котором пользователь может редактировать содержимое ячейки Excel и хочет использовать PrimeFaces Extensions pe:sheet.Я могу отображать содержимое в ячейках довольно легко, однако я не нахожу решения, позволяющего объединять ячейки.

Кто-нибудь знает способ объединения строк и столбцов с помощью этого расширения от PrimeFaces?

1 Ответ

0 голосов
/ 05 июля 2018

Я автор.Лист основан на HandsonTable.js, который вы можете увидеть здесь с демонстрацией объединенной ячейки:

https://docs.handsontable.com/4.0.0/demo-merged-cells.html

var
  container = document.getElementById('example1'),
  hot;

hot = new Handsontable(container, {
  data: Handsontable.helper.createSpreadsheetData(100, 18),
  colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47],
  rowHeaders: true,
  colHeaders: true,
  contextMenu: true,
  mergeCells: [
    {row: 1, col: 1, rowspan: 3, colspan: 3},
    {row: 3, col: 4, rowspan: 2, colspan: 2},
    {row: 5, col: 6, rowspan: 3, colspan: 3}
  ]
});

Смотрите наш пример использования "extender" или "updateSettings", поэтомуВы можете установить Javascript для объединенных ячеек при загрузке.

https://www.primefaces.org/showcase-ext/sections/sheet/dynamicColumns.jsf

<pe:sheet id="sheet" 
  value="#{sheetDynamicController.sheetRows}" 
  var="row" height="400" 
  rowKey="#{row.id}" 
  showRowHeaders="true" 
  sortBy="#{row.id}" 
  sortOrder="ascending"  
  width="800"  
  widgetVar="sheetWidget"  
  extender="sheetExtender">

...

<script type="text/javascript">  
function sheetExtender() {  
    this.cfg.mergeCells: [
        {row: 1, col: 1, rowspan: 3, colspan: 3},
        {row: 3, col: 4, rowspan: 2, colspan: 2},
        {row: 5, col: 6, rowspan: 3, colspan: 3}
      ];  
};  
...