diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index d5b6c119..641d8cb6 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -17,7 +17,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: 9.0.x
+ dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
@@ -25,7 +25,7 @@ jobs:
run: dotnet build --no-restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
- name: Benchmark
- run: dotnet run -c Release -f net9.0
+ run: dotnet run -c Release -f net10.0
working-directory: ./benchmarks/MiniExcel.Benchmarks
env:
BenchmarkMode: Automatic
@@ -47,7 +47,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: 9.0.x
+ dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
@@ -55,7 +55,7 @@ jobs:
run: dotnet build --no-restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
- name: Benchmark
- run: dotnet run -c Release -f net9.0
+ run: dotnet run -c Release -f net10.0
working-directory: ./benchmarks/MiniExcel.Benchmarks
env:
BenchmarkMode: Automatic
@@ -77,7 +77,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
- dotnet-version: 9.0.x
+ dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
@@ -85,7 +85,7 @@ jobs:
run: dotnet build --no-restore
working-directory: ./benchmarks/MiniExcel.Benchmarks
- name: Benchmark
- run: dotnet run -c Release -f net9.0
+ run: dotnet run -c Release -f net10.0
working-directory: ./benchmarks/MiniExcel.Benchmarks
env:
BenchmarkMode: Automatic
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 86ec56e9..62fdbe71 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -13,10 +13,10 @@ name: "CodeQL"
on:
push:
- branches: [ master ]
+ branches: [ v1.x-maintenance ]
pull_request:
# The branches below must be a subset of the branches above
- branches: [ master ]
+ branches: [ v1.x-maintenance ]
schedule:
- cron: '18 0 * * 0'
@@ -40,10 +40,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- - name: Setup .NET 9
- uses: actions/setup-dotnet@v1
+ - name: Setup .NET 10
+ uses: actions/setup-dotnet@v4
with:
- dotnet-version: 9.0.x
+ dotnet-version: 10.0.x
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
@@ -57,8 +57,8 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@v3
+# - name: Autobuild
+# uses: github/codeql-action/autobuild@v3
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -67,9 +67,8 @@ jobs:
# and modify them (or add more) to build your code if your project
# uses a compiled language
- #- run: |
- # make bootstrap
- # make release
-
+ - name: Manual build
+ run: dotnet build MiniExcel.slnx -c Release -f net10.0
+
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 5cf65e17..1c404fb6 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -4,7 +4,7 @@ on:
pull_request:
push:
branches:
- - master
+ - v1.x-maintenance
jobs:
build:
@@ -21,6 +21,10 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
+ - name: Setup .NET 10
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
env:
diff --git a/MiniExcel.sln b/MiniExcel.sln
deleted file mode 100644
index 8d3d52f2..00000000
--- a/MiniExcel.sln
+++ /dev/null
@@ -1,70 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.0.31903.59
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniExcelLibs", "src\MiniExcel\MiniExcelLibs.csproj", "{097903C9-1F81-4427-B4C8-530CB59687B8}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs and setting", "Docs and setting", "{2AFABF2E-D6C3-4983-B43A-76ADA2BB2876}"
- ProjectSection(SolutionItems) = preProject
- .gitattributes = .gitattributes
- .gitignore = .gitignore
- appveyor.yml = appveyor.yml
- .github\workflows\dotnet.yml = .github\workflows\dotnet.yml
- LICENSE = LICENSE
- README-NuGet.md = README-NuGet.md
- README.md = README.md
- README.zh-CN.md = README.zh-CN.md
- README.zh-Hant.md = README.zh-Hant.md
- .github\workflows\benchmark.yml = .github\workflows\benchmark.yml
- .github\workflows\codeql-analysis.yml = .github\workflows\codeql-analysis.yml
- EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CC1E0601-AEC9-42D7-8F6A-3FB3939EED16}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{359A7094-3353-48F2-B3E1-FE9E59698318}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Releases", "Releases", "{3E370222-8E9E-45E8-8DCD-E5F41EE52A39}"
- ProjectSection(SolutionItems) = preProject
- docs\README.md = docs\README.md
- docs\README.zh-CN.md = docs\README.zh-CN.md
- docs\README.zh-Hant.md = docs\README.zh-Hant.md
- EndProjectSection
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MiniExcelTests", "tests\MiniExcelTests\MiniExcelTests.csproj", "{77F2C86B-0F17-4370-AB38-A089F9DF4ED5}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{77A8A169-168B-457F-AB5F-48F30D6BB33C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MiniExcel.Benchmarks", "benchmarks\MiniExcel.Benchmarks\MiniExcel.Benchmarks.csproj", "{F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {097903C9-1F81-4427-B4C8-530CB59687B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {097903C9-1F81-4427-B4C8-530CB59687B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {097903C9-1F81-4427-B4C8-530CB59687B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {097903C9-1F81-4427-B4C8-530CB59687B8}.Release|Any CPU.Build.0 = Release|Any CPU
- {77F2C86B-0F17-4370-AB38-A089F9DF4ED5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {77F2C86B-0F17-4370-AB38-A089F9DF4ED5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {77F2C86B-0F17-4370-AB38-A089F9DF4ED5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {77F2C86B-0F17-4370-AB38-A089F9DF4ED5}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {097903C9-1F81-4427-B4C8-530CB59687B8} = {CC1E0601-AEC9-42D7-8F6A-3FB3939EED16}
- {77F2C86B-0F17-4370-AB38-A089F9DF4ED5} = {359A7094-3353-48F2-B3E1-FE9E59698318}
- {F1BDF4D7-F3C4-4114-82F6-EF81567DFBD8} = {77A8A169-168B-457F-AB5F-48F30D6BB33C}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {51DF25DA-2DCB-4883-90FE-399DA950D4F2}
- EndGlobalSection
-EndGlobal
diff --git a/MiniExcel.slnx b/MiniExcel.slnx
new file mode 100644
index 00000000..bd86cdee
--- /dev/null
+++ b/MiniExcel.slnx
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj b/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj
index e986cd38..f0d218a1 100644
--- a/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj
+++ b/benchmarks/MiniExcel.Benchmarks/MiniExcel.Benchmarks.csproj
@@ -2,7 +2,7 @@
Exe
- net8.0;net9.0
+ net8.0;net9.0;net10.0
enable
enable
latest
@@ -16,7 +16,7 @@
-
+
diff --git a/src/MiniExcel/MiniExcelLibs.csproj b/src/MiniExcel/MiniExcelLibs.csproj
index 24bfcf5e..a333fb8f 100644
--- a/src/MiniExcel/MiniExcelLibs.csproj
+++ b/src/MiniExcel/MiniExcelLibs.csproj
@@ -1,6 +1,6 @@
- net45;netstandard2.0;net8.0;net9.0
+ net45;netstandard2.0;net8.0;net9.0;net10.0
1.41.4
@@ -50,9 +50,9 @@ Todo : https://github.com/mini-software/MiniExcel/projects/1?fullscreen=true
-
+
-
+
diff --git a/tests/MiniExcelTests/MiniExcelIssueAsyncTests.cs b/tests/MiniExcelTests/MiniExcelIssueAsyncTests.cs
index 62b41a9e..67c25566 100644
--- a/tests/MiniExcelTests/MiniExcelIssueAsyncTests.cs
+++ b/tests/MiniExcelTests/MiniExcelIssueAsyncTests.cs
@@ -1324,7 +1324,7 @@ public async Task Issue142()
Assert.Equal("MyProperty5", rows[0].C);
Assert.Equal("MyProperty2", rows[0].D);
Assert.Equal("MyProperty6", rows[0].E);
- Assert.Equal(null, rows[0].F);
+ Assert.Null(rows[0].F);
Assert.Equal("MyProperty3", rows[0].G);
Assert.Equal("MyProperty4", rows[0].A);
@@ -1332,7 +1332,7 @@ public async Task Issue142()
Assert.Equal("MyProperty5", rows[0].C);
Assert.Equal("MyProperty2", rows[0].D);
Assert.Equal("MyProperty6", rows[0].E);
- Assert.Equal(null, rows[0].F);
+ Assert.Null(rows[0].F);
Assert.Equal("MyProperty3", rows[0].G);
}
diff --git a/tests/MiniExcelTests/MiniExcelIssueTests.cs b/tests/MiniExcelTests/MiniExcelIssueTests.cs
index 6dc8ded0..0cf4a112 100644
--- a/tests/MiniExcelTests/MiniExcelIssueTests.cs
+++ b/tests/MiniExcelTests/MiniExcelIssueTests.cs
@@ -3067,7 +3067,7 @@ public void Issue142()
Assert.Equal("MyProperty5", rows[0].C);
Assert.Equal("MyProperty2", rows[0].D);
Assert.Equal("MyProperty6", rows[0].E);
- Assert.Equal(null, rows[0].F);
+ Assert.Null(rows[0].F);
Assert.Equal("MyProperty3", rows[0].G);
Assert.Equal("MyProperty4", rows[0].A);
@@ -3075,7 +3075,7 @@ public void Issue142()
Assert.Equal("MyProperty5", rows[0].C);
Assert.Equal("MyProperty2", rows[0].D);
Assert.Equal("MyProperty6", rows[0].E);
- Assert.Equal(null, rows[0].F);
+ Assert.Null(rows[0].F);
Assert.Equal("MyProperty3", rows[0].G);
}
@@ -4235,7 +4235,7 @@ public void TestIssue763()
var path = PathHelper.GetFile("xlsx/TestIssue763.xlsx");
var rows = MiniExcel.QueryRange(path, startCell: "A3", endCell: "J3").ToArray();
Assert.Equal("A3", rows[0].A);
- Assert.Equal(null, rows[0].J);
+ Assert.Null(rows[0].J);
}
///
@@ -4330,8 +4330,8 @@ public void TestIssue771()
var rows = MiniExcel.Query(path.FilePath).ToList();
Assert.Equal("2025-1", rows[2].B);
- Assert.Equal(null, rows[3].B);
- Assert.Equal(null, rows[4].B);
+ Assert.Null(rows[3].B);
+ Assert.Null(rows[4].B);
Assert.Equal("2025-2", rows[5].B);
return;
@@ -4658,7 +4658,7 @@ public void TestIssue809()
var rows = MiniExcel.Query(path).ToList();
Assert.Equal(3, rows.Count);
- Assert.Equal(null, rows[0].A);
+ Assert.Null(rows[0].A);
Assert.Equal(2, rows[2].B);
}
diff --git a/tests/MiniExcelTests/MiniExcelOpenXmlTests.cs b/tests/MiniExcelTests/MiniExcelOpenXmlTests.cs
index 005e035d..47001a2a 100644
--- a/tests/MiniExcelTests/MiniExcelOpenXmlTests.cs
+++ b/tests/MiniExcelTests/MiniExcelOpenXmlTests.cs
@@ -204,28 +204,28 @@ public void CenterEmptyRowsQueryTest()
Assert.Equal("d", rows[0].D);
Assert.Equal(1, rows[1].A);
- Assert.Equal(null, rows[1].B);
+ Assert.Null(rows[1].B);
Assert.Equal(3, rows[1].C);
- Assert.Equal(null, rows[1].D);
+ Assert.Null(rows[1].D);
- Assert.Equal(null, rows[2].A);
+ Assert.Null(rows[2].A);
Assert.Equal(2, rows[2].B);
- Assert.Equal(null, rows[2].C);
+ Assert.Null(rows[2].C);
Assert.Equal(4, rows[2].D);
- Assert.Equal(null, rows[3].A);
- Assert.Equal(null, rows[3].B);
- Assert.Equal(null, rows[3].C);
- Assert.Equal(null, rows[3].D);
+ Assert.Null(rows[3].A);
+ Assert.Null(rows[3].B);
+ Assert.Null(rows[3].C);
+ Assert.Null(rows[3].D);
Assert.Equal(1, rows[4].A);
- Assert.Equal(null, rows[4].B);
+ Assert.Null(rows[4].B);
Assert.Equal(3, rows[4].C);
- Assert.Equal(null, rows[4].D);
+ Assert.Null(rows[4].D);
- Assert.Equal(null, rows[5].A);
+ Assert.Null(rows[5].A);
Assert.Equal(2, rows[5].B);
- Assert.Equal(null, rows[5].C);
+ Assert.Null(rows[5].C);
Assert.Equal(4, rows[5].D);
}
@@ -234,28 +234,28 @@ public void CenterEmptyRowsQueryTest()
var rows = stream.Query(useHeaderRow: true).ToList();
Assert.Equal(1, rows[0].a);
- Assert.Equal(null, rows[0].b);
+ Assert.Null(rows[0].b);
Assert.Equal(3, rows[0].c);
- Assert.Equal(null, rows[0].d);
+ Assert.Null(rows[0].d);
- Assert.Equal(null, rows[1].a);
+ Assert.Null(rows[1].a);
Assert.Equal(2, rows[1].b);
- Assert.Equal(null, rows[1].c);
+ Assert.Null(rows[1].c);
Assert.Equal(4, rows[1].d);
- Assert.Equal(null, rows[2].a);
- Assert.Equal(null, rows[2].b);
- Assert.Equal(null, rows[2].c);
- Assert.Equal(null, rows[2].d);
+ Assert.Null(rows[2].a);
+ Assert.Null(rows[2].b);
+ Assert.Null(rows[2].c);
+ Assert.Null(rows[2].d);
Assert.Equal(1, rows[3].a);
- Assert.Equal(null, rows[3].b);
+ Assert.Null(rows[3].b);
Assert.Equal(3, rows[3].c);
- Assert.Equal(null, rows[3].d);
+ Assert.Null(rows[3].d);
- Assert.Equal(null, rows[4].a);
+ Assert.Null(rows[4].a);
Assert.Equal(2, rows[4].b);
- Assert.Equal(null, rows[4].c);
+ Assert.Null(rows[4].c);
Assert.Equal(4, rows[4].d);
}
}
@@ -267,15 +267,15 @@ public void TestEmptyRowsQuerySelfClosingTag()
using var stream = File.OpenRead(path);
var rows = stream.Query().ToList();
- Assert.Equal(null, rows[0].A);
+ Assert.Null(rows[0].A);
Assert.Equal(1, rows[1].A);
- Assert.Equal(null, rows[2].A);
+ Assert.Null(rows[2].A);
Assert.Equal(2, rows[3].A);
- Assert.Equal(null, rows[4].A);
- Assert.Equal(null, rows[5].A);
- Assert.Equal(null, rows[6].A);
- Assert.Equal(null, rows[7].A);
- Assert.Equal(null, rows[8].A);
+ Assert.Null(rows[4].A);
+ Assert.Null(rows[5].A);
+ Assert.Null(rows[6].A);
+ Assert.Null(rows[7].A);
+ Assert.Null(rows[8].A);
Assert.Equal(1, rows[9].A);
}
@@ -500,9 +500,9 @@ public void QuerySheetWithoutRAttribute()
Assert.Equal(5, keys.Count);
Assert.Equal(1, rows[0].A);
- Assert.Equal(null, rows[0].C);
- Assert.Equal(null, rows[0].D);
- Assert.Equal(null, rows[0].E);
+ Assert.Null(rows[0].C);
+ Assert.Null(rows[0].D);
+ Assert.Null(rows[0].E);
Assert.Equal(1, rows[1].A);
Assert.Equal("\"<>+}{\\nHello World", rows[1].B);
@@ -669,8 +669,8 @@ public void SaveAsFileWithDimension()
Assert.Equal(2, rows.Count);
Assert.Equal(@"""<>+-*//}{\\n", rows[0].a);
Assert.Equal(1234567890, rows[0].b);
- Assert.Equal(null, rows[0].c);
- Assert.Equal(null, rows[0].d);
+ Assert.Null(rows[0].c);
+ Assert.Null(rows[0].d);
}
using (var stream = File.OpenRead(path))
diff --git a/tests/MiniExcelTests/MiniExcelTests.csproj b/tests/MiniExcelTests/MiniExcelTests.csproj
index e4fc08c7..7b7102d5 100644
--- a/tests/MiniExcelTests/MiniExcelTests.csproj
+++ b/tests/MiniExcelTests/MiniExcelTests.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net10.0
enable
enable
@@ -20,12 +20,12 @@
-
+
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all