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

时间:2019-03-15 12:51:16

标签: excel wpf radgridview

我需要将RadGridView的Excel导出,以使其在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 个答案:

答案 0 :(得分:1)

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

CellValueFormat类是在Telerik.Windows.Documents.Spreadsheet.dll中定义的,因此您需要引用此程序集