Telerik RadGridView.ExportToXlsx - форматирование ячеек как числа - PullRequest
1 голос
/ 15 марта 2019

Мне нужен экспорт в Excel RadGridView, чтобы иметь формат ячейки «Число» в Excel со стилем формата «{0: #, ## 0,00}».

Я достигчто с помощью .Export обрабатывается событие ElementExporting:

grid.ElementExporting += Grid_ElementExporting;
grid.Export(stream, new GridViewExportOptions()
{
  Format = ExportFormat.ExcelML,
  ShowColumnHeaders = true,
  ShowColumnFooters = true
});

private void Grid_ElementExporting(object sender, GridViewElementExportingEventArgs e)
        {
            if (e.Element == ExportElement.Cell)
            {
                var column = e.Context as GridViewDataColumn;
                if (column?.DataType?.Name == "Decimal")
                {
                    e.Value = string.Format(@"{0:#,##0.00}", e.Value);
                }
            }
        }

Однако при открытии в Excel появляется ошибка " Формат файла и расширение X не совпадают." Несмотря на то, что он определенно имеет расширение .xls.Я могу щелкнуть мимо этого, и он загрузится правильно.

Читая об этом больше, звучит так, как будто я должен обновить, чтобы использовать вместо него .ExportToXlsx, и получение файлов в .xlsx было бы в любом случае перком.

Я изменяю .Export на .ExportToXlxs, а ElementExporting на ElementExportingToDocument, и форматирование работает, но все ячейки вернулись к формату «Общие» в Excel, тогда как они нужны мне как«Число».

Есть документация по применению визуальных стилей: https://docs.telerik.com/devtools/wpf/controls/radgridview/export/how-to/style-exported-documents

Но не для того, чтобы изменить базовый формат, который я могу найти.

Есть предложения?

1 Ответ

1 голос
/ 15 марта 2019

Вы должны использовать CellValueFormat, как описано в официальных документах .

Класс CellValueFormat определен в Telerik.Windows.Documents.Spreadsheet.dll, поэтому вам нужно сослаться на эту сборку

...