我有一个问题。我正在从 excel 文件中导入数据,比如代码之类的数据。用于导入我正在使用LinqToExcel 问题是 excel 的列之一包含诸如“A2C235425345345”或“12441523543454454”之类的代码。此列的此数据未格式化为字符串或数字。因此,当从 excel 文件中读取时,而不是该值“6.57621e+009”。所以现在我需要一种方法将该值转换回初始值,使用 C# 和 .NET 框架 4.0
有任何想法吗?谢谢!
我有一个问题。我正在从 excel 文件中导入数据,比如代码之类的数据。用于导入我正在使用LinqToExcel 问题是 excel 的列之一包含诸如“A2C235425345345”或“12441523543454454”之类的代码。此列的此数据未格式化为字符串或数字。因此,当从 excel 文件中读取时,而不是该值“6.57621e+009”。所以现在我需要一种方法将该值转换回初始值,使用 C# 和 .NET 框架 4.0
有任何想法吗?谢谢!
在字符串值之前使用撇号'
,然后将其传递给 Excel。
我假设您正在将数据导出到 Excel。
尝试为转换列添加一个映射块。
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:注意十进制转换过程中的文化依赖。