要转换为字符串的指数

时间:2011-01-27 13:52:03

标签: c# excel .net-4.0 exponential

我有一个问题。我正在从excel文件导入数据,包括代码和内容等数据。 导入我正在使用LinqToExcel linqToExcel 问题是,其中一个excel的列包含“A2C235425345345”或“12441523543454454”等代码。此列的此数据未格式化为字符串或数字。因此,当从excel文件中读取时,而不是该值“6.57621e + 009”。 所以现在我需要一种方法将该值转换回初始值,使用C#和.NET framework 4.0

有什么想法吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

在字符串值之前使用撇号',然后将其传递给Excel。

我假设您要将数据导出到Excel。

答案 1 :(得分:0)

尝试为转换列添加映射块。

public static List<ExcelReqests> LoadRequest( string path)
{
     var excel = new ExcelQueryFactory(path);
     excel.AddMapping<ExcelRequests>(x => x.COLUMNNAME, "COLUMNNAME",
                s => !string.IsNullOrEmpty(s)
                    ? decimal.TryParse(s, NumberStyles.Number | NumberStyles.AllowExponent | NumberStyles.Float, CultureInfo.InvariantCulture, out decimal dummy)
                        ?
                        dummy.ToString("#0")
                        : s
                    : s);  
    return (from e in excel.Worksheet<ExcelRequests>(0)
                select e).ToList();
 }

PS:注意十进制转换过程中的文化依赖性。