【问题标题】:Telerik RadGridView.ExportToXlsx - format cells as numberTelerik RadGridView.ExportToXlsx - 将单元格格式化为数字
【发布时间】:2019-08-06 13:26:13
【问题描述】:

我需要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

但不要更改我能找到的底层格式。

有什么建议吗?

【问题讨论】:

  • 您是否尝试按照the official docs 中的说明创建CellValueFormat
  • 我有,但看起来我一直在误用它。我试过“Format = CellValueFormat.”,然后看到唯一的选择是 GeneralFormat。我将尝试创建一个,谢谢。
  • CellValueFormat 类在Telerik.Windows.Documents.Spreadsheet.dll 中定义。您需要引用此程序集。
  • 非常感谢,已经搞定了。

标签: excel wpf radgridview


【解决方案1】:

您应该使用CellValueFormat,如the official docs 中所述。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多