使用IExcelDataReader从Excel获取正确的文本显示

3

简短概述:如何在将Excel文件转换为字符串后获取显示文本而非值。

我有一个从上传控件中得到的Excel文件,通过IExcelDataReader将其转换为DataSet,并选择其中的一个表格。在某些情况下,使用datatable.Rows[x][y].ToString()方法会得到不正确的字符串值。

例如,像44.123这样的单元格在使用.ToString()方法后会返回44,123,但我需要真正的字符串值44.123。我可以通过在Excel中添加`来将双精度浮点数转换为字符串格式来解决这个问题。但我不知道何时单元格具有该格式,并希望通过C#代码以编程方式实现。

请给我一些建议。谢谢!


你在欧洲地区吗? - Dr. Stitch
我的操作系统设置是美国。 - tungns
.ToString() 方法不会进行任何格式更改,除非您指定它。你是否设置了你的数据表区域设置(https://msdn.microsoft.com/zh-cn/library/system.data.datatable.locale(v=vs.110).aspx)? - Dr. Stitch
当我检查 datatable.Rows[x][y] 的值时,它是 44.123,但在使用 .ToString() 方法后,我得到的值是 44,123。我没有为我的表设置区域设置。如果有帮助的话,我应该使用什么 CultureInfo - tungns
使用en-US并尝试将其设置为本地环境。 - Dr. Stitch
谢谢您,但这个解决方案对我无效。 - tungns
1个回答

1

你好,试试这个:

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

问候

感谢您的回复。该列存储随机文本值,问题仅在文本值以双精度形式出现时发生。因此,我不想在结果字符串中用点替换所有点。 - tungns
你好,你可以尝试这样写: '.ToString(new CultureInfo("en-US"));' - Essigwurst
返回参数错误:没有重载方法ToString接受1个参数 - tungns
奇怪,这是怎么回事? Convert.ToString("...", new CultureInfo("en-US")); - Essigwurst
那个有效!非常感谢。请更新您的答案,以便我可以接受它。 - tungns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接