1

我目前正在将 RadGrid 导出到 Excel,并且我有一些带有文本“1 / 10”的单元格,这意味着它们有 1 小时用于 10 个单位。当它到达 Excel 时,它认为单元格是一个日期,所以它将单元格更改为 1 月 10 日,这不是我想要的。

我之前已经走了另一个方向(将字符串更改为数字/日期),但我从来没有遇到过需要让 Excel 将单元格保留为字符串而不尝试更改格式的问题。

我该怎么做呢?我尝试在单元格文本的开头添加撇号:

e.Cell.Text = String.Format("'{0}", e.Cell.Text);

但这似乎只是让 Excel 在单元格的开头显示两个撇号:

Excel 示例


更新:

我正在使用 Telerik RadGrid (v2012.2.929.40),它所做的只是为 Excel 生成一些 HTML 以打开它(当你试图打开它时,你总是会从 Excel 中得到那个可怕的提示)。因此,在此之前,如果我希望将某些内容格式化为网格中特定的数字,我可以使用以下事件来设置mso-number-format。但是,当我希望 Excel 将单元格值显示为严格的文本时,这并不完全有效。

    protected void RadGridQuote_ExcelExportCellFormatting(object sender, ExcelExportCellFormattingEventArgs e)
    {
        if (e.Cell.Style["mso-number-format"] != null)
        {
            e.Cell.Style["mso-number-format"] = "/@";
            e.Cell.HorizontalAlign = HorizontalAlign.Left;
        }
    }
4

1 回答 1

1

如果您在 C# 中使用 Excel 自动化,我发现最好的结果是设置第NumberFormat一个,您应该将其设置为“@”。然后在您的.Text属性中设置值。(如果你反过来,它会将日期转换为你不想要的数字。)

另请参阅有关 NumberFormat 的MSDN 。

于 2013-06-27T19:44:26.543 回答