OData based Grid to Excel Export

Posted by: m-miertschink on 14 September 2017, 3:09 am EST

    • Post Options:
    • Link

    Posted 14 September 2017, 3:09 am EST

    Hi,

    is it somehow possible to export the “full” FlexGrid of an OData based OdataCollectionView to Excel or PDF?

    Currently I’m only getting the first page exported. Of cause I’m using paging for the grid.

    The export save method seems to see only the current page.

    let workbook = FlexGridXlsxConverter.save(this.flex, {

    sheetName: “myLabel”,

    includeCellStyles: false,

    includeColumns: function (column) {

    return column.visible;

    }

    workbook.saveAsync(filename, saved => {

    console.log(‘Exporting to excel: Worksheet Saved’);

    });

  • Posted 14 September 2017, 3:09 am EST

    Hello,

    For this, you need to use paging on client side. Before exporting set pageSize to 0 and after exporting set pageSize back.

    For your reference, please refer to the attached sample that implements the same.

    Thanks,

    Manish Kumar Gupta

    2017/07/FlexGrid_OData_export.zip

  • Posted 20 November 2017, 8:05 pm EST

    Hello,

    Do you have a sample solution for pure JavaScript (!Angular). The following code does not work (always exports just the current page):

    
    var instrumentsView = new wijmo.odata.ODataCollectionView(odataEndpointUrl, "InstrumentViewData", {
      sortOnServer: true,
      filterOnServer: true,
      pageOnServer: true,
      pageSize: 20,
    });
    ...
    document.getElementById("btnExportToExcel").addEventListener('click', function (e) {
      var originalPageSize = instrumentsView.pageSize;
      var originalPageIndex = instrumentsView.pageIndex;
      instrumentsView.pageSize = 0;
      instrumentsView.pageOnServer = false;
      instrumentsView.load();
    
      wijmo.grid.xlsx.FlexGridXlsxConverter.save(
        grid,
        {
          includeColumnHeaders: true,
          includeRowHeaders: true,
          sheetName: "Meradlá"
        },
        "Export.xlsx"
      );
    
      instrumentsView.pageIndex = originalPageIndex;
      instrumentsView.pageSize = originalPageSize;
      instrumentsView.pageOnServer = true;
      instrumentsView.load();
    });
    
    

    Regards,

    Palo

  • Posted 22 November 2017, 1:21 am EST

    Palo,

    To get all of the pages to export, you need to sort on the client side instead of the server side. Change the line

    pageOnServer: true
    to ```

    pageOnServer: false

    
    Regards,
    Joel
Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels