Compare commits
2 Commits
da2fa56053
...
b0114f7886
Author | SHA1 | Date |
---|---|---|
|
b0114f7886 | |
|
f83fe3ef23 |
|
@ -1,4 +1,5 @@
|
|||
using System.IO.Compression;
|
||||
using System.Globalization;
|
||||
using System.IO.Compression;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
|
||||
|
@ -206,6 +207,49 @@ public class ExcelReader : DisposeBase
|
|||
val = TimeSpan.FromSeconds(Math.Round(str.ToDouble() * 24 * 3600));
|
||||
}
|
||||
}
|
||||
// 自动处理0/General
|
||||
else if (st.NumFmtId == 0)
|
||||
{
|
||||
if (val is String str)
|
||||
{
|
||||
if (Int32.TryParse(str, out var n)) return n;
|
||||
if (Int64.TryParse(str, out var m)) return m;
|
||||
if (Decimal.TryParse(str, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)) return d;
|
||||
if (Double.TryParse(str, out var d2)) return d2;
|
||||
}
|
||||
}
|
||||
else if (st.NumFmtId is 1 or 3 or 37 or 38)
|
||||
{
|
||||
if (val is String str)
|
||||
{
|
||||
if (Int32.TryParse(str, out var n)) return n;
|
||||
if (Int64.TryParse(str, out var m)) return m;
|
||||
}
|
||||
}
|
||||
else if (st.NumFmtId is 2 or 4 or 11 or 39 or 40)
|
||||
{
|
||||
if (val is String str)
|
||||
{
|
||||
if (Decimal.TryParse(str, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)) return d;
|
||||
if (Double.TryParse(str, out var d2)) return d2;
|
||||
}
|
||||
}
|
||||
else if (st.NumFmtId is 9 or 10)
|
||||
{
|
||||
if (val is String str)
|
||||
{
|
||||
if (Double.TryParse(str, out var d2)) return d2;
|
||||
}
|
||||
}
|
||||
// 文本Text
|
||||
else if (st.NumFmtId == 49)
|
||||
{
|
||||
if (val is String str)
|
||||
{
|
||||
if (Decimal.TryParse(str, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)) return d.ToString();
|
||||
if (Double.TryParse(str, out var d2)) return d2.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
@ -242,14 +286,14 @@ public class ExcelReader : DisposeBase
|
|||
[11] = "0.00E+00",
|
||||
[12] = "# ?/?",
|
||||
[13] = "# ??/??",
|
||||
[14] = "mm/dd/yy",
|
||||
[14] = "mm-dd-yy",
|
||||
[15] = "d-mmm-yy",
|
||||
[16] = "d-mmm",
|
||||
[17] = "mmm-yy",
|
||||
[18] = "h:mm AM/PM",
|
||||
[19] = "h:mm:ss AM/PM",
|
||||
[20] = "h:mm",
|
||||
[21] = "h:mm:dd",
|
||||
[21] = "h:mm:ss",
|
||||
[22] = "m/d/yy h:mm",
|
||||
[37] = "#,##0 ;(#,##0)",
|
||||
[38] = "#,##0 ;[Red](#,##0)",
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<Description>Core basic components: log (file / network), configuration (XML / JSON / HTTP), cache, network (TCP / UDP / HTTP /WebSocket), serialization (binary / XML / JSON), APM performance tracking. 核心基础组件,日志(文件/网络)、配置(XML/Json/Http)、缓存、网络(Tcp/Udp/Http/WebSocket)、序列化(Binary/XML/Json)、APM性能追踪。</Description>
|
||||
<Company>新生命开发团队</Company>
|
||||
<Copyright>©2002-2025 NewLife</Copyright>
|
||||
<VersionPrefix>11.5</VersionPrefix>
|
||||
<VersionPrefix>11.6</VersionPrefix>
|
||||
<VersionSuffix>$([System.DateTime]::Now.ToString(`yyyy.MMdd`))</VersionSuffix>
|
||||
<Version>$(VersionPrefix).$(VersionSuffix)</Version>
|
||||
<FileVersion>$(Version)</FileVersion>
|
||||
|
@ -32,7 +32,7 @@
|
|||
<RepositoryUrl>https://github.com/NewLifeX/X</RepositoryUrl>
|
||||
<RepositoryType>git</RepositoryType>
|
||||
<PackageTags>新生命团队;X组件;NewLife;$(AssemblyName)</PackageTags>
|
||||
<PackageReleaseNotes>改进ChangeType;浮点数转换支持科学计数法</PackageReleaseNotes>
|
||||
<PackageReleaseNotes>改进Host.Close让应用有序退出;增强DbTable的大数据文件读写能力,支持机器学场景;优化Binary二进制读写,支持压缩数据流;改进Linux内存采集;改进ExcelReader对常规数字的读取;</PackageReleaseNotes>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
||||
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<Description>扩展加密算法</Description>
|
||||
<Company>新生命开发团队</Company>
|
||||
<Copyright>©2002-2025 NewLife</Copyright>
|
||||
<VersionPrefix>11.5</VersionPrefix>
|
||||
<VersionPrefix>11.6</VersionPrefix>
|
||||
<VersionSuffix>$([System.DateTime]::Now.ToString(`yyyy.MMdd`))</VersionSuffix>
|
||||
<Version>$(VersionPrefix).$(VersionSuffix)</Version>
|
||||
<FileVersion>$(Version)</FileVersion>
|
||||
|
|
|
@ -36,7 +36,7 @@ public class ExcelReaderTests
|
|||
else if (row1[i] is TimeSpan ts)
|
||||
Assert.Equal(TimeSpan.Parse(values[i]), ts);
|
||||
else
|
||||
Assert.Equal(values[i], row1[i]);
|
||||
Assert.Equal(values[i], row1[i] + "");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue