C# 使用IExcelDataReader从excel获取正确的文本显示

C# 使用IExcelDataReader从excel获取正确的文本显示,c#,excel,exceldatareader,C#,Excel,Exceldatareader,tl;dr:如何在转换为字符串后在excel文件中获取显示文本而不是值 我有一个来自上传控件的Excel文件,通过IExcelDataReader将其转换为数据集,并在其中选择一个表。在某些情况下,我使用datatable.Rows[x][y].ToString获得了不正确的字符串值。 例如,文本为44.123的单元格将在.ToString方法之后返回44123,但我想要的正是字符串44.123。我可以通过在excel中的单元格值之前添加`将其从双精度格式转换为字符串格式来修复它。但我不知道什么

tl;dr:如何在转换为字符串后在excel文件中获取显示文本而不是值

我有一个来自上传控件的Excel文件,通过IExcelDataReader将其转换为数据集,并在其中选择一个表。在某些情况下,我使用datatable.Rows[x][y].ToString获得了不正确的字符串值。 例如,文本为44.123的单元格将在.ToString方法之后返回44123,但我想要的正是字符串44.123。我可以通过在excel中的单元格值之前添加`将其从双精度格式转换为字符串格式来修复它。但我不知道什么时候cell有这种格式,并希望用c代码以编程方式实现它。请给我一些建议。谢谢大家!

你好, 试试这个:

Convert.ToString("...", new CultureInfo("en-US"));

您好

您在欧洲地区吗?我的操作系统设置在美国。除非您指定,否则ToString方法不会进行任何格式更改。是否设置了datatable区域设置?当我检查datatable.Rows[x][y]值时,它是44.123,但在.ToString方法之后,我得到的值是44123,我没有为我的表设置区域设置。如果有用,我应该使用什么CultureInfo?使用en-Us并尝试将其设置为区域设置。谢谢您的回复。该列存储随机文本值,只有当文本值为双精度形式时才会发生问题。所以我不想在结果字符串中用点替换所有点。您好,所以您可以尝试以下操作:'.ToString新文化信息通知我们;'返回参数错误:ToString方法没有重载take 1 ArgumentsTrange,这是怎么回事?转化为字符串…,新文化向我们提供信息;成功了!非常感谢。请更新您的答案,以便我无法接受