Telerik RadGridView.ExportToXlsx - 将单元格格式化为数字

Telerik RadGridView.ExportToXlsx - format cells as number

我需要 RadGridView 的 Excel 导出,以便在 Excel 中具有 "Number" 的单元格格式,格式样式为“{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,格式正常,但所有单元格都恢复为格式 "General" 在 Excel 中,而我需要它们作为 "Number".

有关于应用视觉样式的文档: https://docs.telerik.com/devtools/wpf/controls/radgridview/export/how-to/style-exported-documents

但不要更改我能找到的基础格式。

有什么建议吗?

您应该按照 the official docs 中的说明使用 CellValueFormat

CellValueFormat class 定义在 Telerik.Windows.Documents.Spreadsheet.dll 所以你需要引用这个程序集