1

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

有任何想法吗?谢谢!

4

2 回答 2

1

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

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

于 2011-03-01T20:24:50.620 回答
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:注意十进制转换过程中的文化依赖。

于 2021-01-07T12:23:06.763 回答