我目前正在向Excel中导出一个RadGrid,我有一些单词格式为“1/10”,这意味着它们有1小时用于10个单位。当它进入Excel时,它认为单元格是一个日期,因此它将单元格更改为1月10日,这不是我想要的。
我之前已经走了另一个方向(将字符串更改为数字/日期)但我从来没有遇到过需要让Excel将单元格保持为字符串而不是尝试更改格式的问题。 / p>
我该怎么做?我尝试在单元格文本的开头添加撇号:
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;
}
}
答案 0 :(得分:1)
如果你在C#中使用Excel Automation,我发现最好的结果是首先设置NumberFormat
,你应该设置为“@”。然后在.Text
属性中设置值。 (如果你反向进行,它会将日期转换为你不想要的数字。)
另请参阅有关NumberFormat的MSDN。