我目前正在将 RadGrid 导出到 Excel,并且我有一些带有文本“1 / 10”的单元格,这意味着它们有 1 小时用于 10 个单位。当它到达 Excel 时,它认为单元格是一个日期,所以它将单元格更改为 1 月 10 日,这不是我想要的。
我之前已经走了另一个方向(将字符串更改为数字/日期),但我从来没有遇到过需要让 Excel 将单元格保留为字符串而不尝试更改格式的问题。
我该怎么做呢?我尝试在单元格文本的开头添加撇号:
e.Cell.Text = String.Format("'{0}", e.Cell.Text);
但这似乎只是让 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;
}
}