Применить цвет фона к элементу управления dxDataGrid и экспортировать в Excel

#javascript #devexpress #devextreme #jszip

#javascript #devexpress #devextreme #jszip

Вопрос:

Я использую DevExpress dxDataGrid в ASP.NET проект для отображения некоторых данных, хранящихся в базе данных SQL Server.

В следующем коде показано, как я настраиваю элемент dxDataGrid управления для отображения данных:

 // Variables.
var vlrMin = [];     
var vlrMax = [];     
var vlr_to_match = 0;
var colors = [];     
var final_rst = "";

// Add values to variables:
vlrMin.push("9");
vlrMin.push("2");
vlrMin.push("9");

// Add values to variables:
vlrMax.push("13");
vlrMax.push("7");
vlrMax.push("4");

colors.push('#ff0000');
colors.push('#92D050');
colors.push('#5B9BD5');

// Start configuration.
$("#gridContainer").dxDataGrid({
    dataSource: [{
        "Dept": "Local services",
        "Employee": "John Doe",
        "TotalHours": "11"
    }],
    paging: {
        pageSize: 10
    },
    export: {
        allowExportSelectedData: true,
        enabled: true,
        fileName: 'Reporte 1',
        texts: {
            exportAll: 'Export all',
            exportSelectedRows: 'Export selected row(s).',
            exportTo: 'Export'
        },
    },
    searchPanel: {
        visible: true
    },
    filterRow: {
        visible: true,
        showOperationChooser: true
    },
    allowColumnReordering: true,
    grouping: {
        autoExpandAll: true
    },
    groupPanel: {
        visible: true
    },
    pager: {
        showPageSizeSelector: true,
        allowedPageSizes: [5, 10, 20],
        showInfo: true
    },
    columns: ['Dept',
        'Employee', {
            dataField: 'TotalHours',
            allowFiltering: true,
            allowSorting: true,
            cellTemplate: function(container, options) {
                /* Value to check if matches with the criteria. */
                var vlr_to_match = options.value;

                /* Loop elements. */
                for (var mn = 0; mn < vlrMin.length; mn  ) {
                    if (vlr_to_match >= vlrMin[mn] amp;amp; vlr_to_match <= vlrMax[mn]) {
                        final_rst = colors[mn];
                        break;
                    }
                }

                /* Apply custom style to element. */
                $('<span>').text(options.data.TotalHours)
                    .attr('style', 'background-color: '   final_rst)
                    .appendTo(container);
            }
        }
    ]
});
  

Это результаты в элементе dxDataGrid управления:

Результаты из элемента управления dxDataGrdi

Но, когда я открываю сгенерированный файл «с использованием функциональности DevExpress», я не получаю тех же результатов, что показаны на скриншоте (т.Е. В ячейке есть значения, но стили не применяются).

Согласно документации, и после применения цвета к определенной ячейке в элементе dxDataGrid управления, при открытии экспортированного файла Excel ячейка не получает тот же результат, что показан в элементе dxDataGrid управления.

Мой вопрос:

  • Как можно применить стили к dxDataGrid ячейке и применить такие результаты к сгенерированному файлу Excel?

Ответ №1:

к сожалению, основываясь на недавнем (2016-09-20) ответе от DX stuff на их форуме поддержки, в DevExtreme suit нет возможности экспортировать dxDataGrid в Excel с форматированием.

Посмотрите сами: https://www.devexpress.com/Support/Center/Question/Details/T429240

Если бы вы использовали элемент управления DevEpress ASPxGridView вместе с ASPxGridViewExporter, вы могли бы настроить формат в экспортированном документе Excel для каждой ячейки или для каждой строки.