RXSpreadsheet icon indicating copy to clipboard operation
RXSpreadsheet copied to clipboard

New release

Open MichaelHogers opened this issue 1 year ago • 0 comments

Looking into creating an updated version (2) of RXSpreadsheet that imports the latest version of x-spreadsheet, https://github.com/myliang/x-spreadsheet/tree/v1.1.7 and fixes outstanding issues.

New features

Looking into how to create an easy to use wrapper for (DT/highcharter proxy approach?):

  • [x] Add sheet, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#addsheet-name-active

  • [ ] Get cell content, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#cell-ri-ci-sheetindex

  • [ ] Get cell style, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#cellstyle-ri-ci-sheetindex

  • [x] Set cell text(/content), https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#celltext-ri-ci-text-sheetindex

  • [x] Refresh, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#rerender

  • [x] Delete a sheet, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#deletesheet

  • [x] Load data, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#loaddata-data-%E5%8A%A0%E8%BD%BD%E6%95%B0%E6%8D%AE

  • [x] Get data, https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#getdata-%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE

  • [x] Add event bindings (similar to say cell clicked/selected in DT), https://hondrytravis.com/x-spreadsheet-doc/doc/spreadsheet.html#change-callback-%E5%8F%98%E6%9B%B4%E4%BA%8B%E4%BB%B6

  • [x] Allow reloading via renderRXSpreadsheet

Show case

  • examples: view only example, cell input binding to cross communicate cell changes with shiny and the client, 10k+ data point test

Issues

  • [ ] use of reactive data, #6 and #9
  • [ ] sizing #7
  • [ ] clean up package structure and look into a cran release, #5
  • [ ] usability, #3, #2, #1

Update: the tagged release 1.1.7 in x-spreadsheet seems outdated, version TBD, current master branch seems to be 1.1.8, 1.1.7 is several years old (?)

Future consideration:

  • Hard to preserve XLSX < - > x-spreadsheet formatting (/styling), https://docs.sheetjs.com/xspreadsheet/ does not seem to support this in this example -> look into preserving formatting in the future if possible via sheetjs/exceljs or similar solution? store client side data in an s3/r6 object with methods that allow to: extract the data.frames containing the spreadsheet data (0 formatting), update the data while persisting formatting rules

Future follow up release to be based on https://github.com/wolf-table/table

MichaelHogers avatar May 07 '23 18:05 MichaelHogers