diff options
-rw-r--r-- | RhSolutions.AddIn/RhSolutions.AddIn.csproj | 3 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Column.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelColumn.cs) | 14 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/ColumnEnumerator.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelColumnEnumerator.cs) | 12 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Columns.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelColumns.cs) | 16 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/ColumnsEnumerator.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelColumnsEnumerator.cs) | 12 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/RhSolutions.ExcelExtensions.csproj | 15 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Row.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelRow.cs) | 12 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/RowEnumerator.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelRowEnumerator.cs) | 12 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Rows.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelRows.cs) | 16 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/RowsEnumerator.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelRowsEnumerator.cs) | 12 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Table.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelTable.cs) | 28 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/TableCell.cs (renamed from RhSolutions.AddIn/ExcelTable/ExcelTableCell.cs) | 10 | ||||
-rw-r--r-- | RhSolutions.ExcelExtensions/Usings.cs | 3 | ||||
-rw-r--r-- | RhSolutions.Tests/ExcelTablesTests.cs | 2 | ||||
-rw-r--r-- | RhSolutions.Tests/Usings.cs | 5 | ||||
-rw-r--r-- | RhSolutions.sln | 6 |
16 files changed, 102 insertions, 76 deletions
diff --git a/RhSolutions.AddIn/RhSolutions.AddIn.csproj b/RhSolutions.AddIn/RhSolutions.AddIn.csproj index 81fcb6a..536248e 100644 --- a/RhSolutions.AddIn/RhSolutions.AddIn.csproj +++ b/RhSolutions.AddIn/RhSolutions.AddIn.csproj @@ -36,4 +36,7 @@ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="RhSolutions.Sku" Version="0.1.1" /> </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\RhSolutions.ExcelExtensions\RhSolutions.ExcelExtensions.csproj" /> + </ItemGroup> </Project>
\ No newline at end of file diff --git a/RhSolutions.AddIn/ExcelTable/ExcelColumn.cs b/RhSolutions.ExcelExtensions/Column.cs index 7d72cd5..53a1f3d 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelColumn.cs +++ b/RhSolutions.ExcelExtensions/Column.cs @@ -1,8 +1,8 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public sealed class ExcelColumn : ExcelTable, IEnumerable<ExcelTableCell> +public sealed class Column : Table, IEnumerable<TableCell> { public string Header { @@ -17,26 +17,26 @@ public sealed class ExcelColumn : ExcelTable, IEnumerable<ExcelTableCell> get => Range.Rows.Count; } - public ExcelColumn(Range range, ExcelTable table) : base(range, table) + public Column(Range range, Table table) : base(range, table) { Range = range; ParentTable = table; } - public ExcelTableCell this[int index] + public TableCell this[int index] { get => new(Range.Cells[index + 1, 1], ParentTable); } - public IEnumerator<ExcelTableCell> GetEnumerator() + public IEnumerator<TableCell> GetEnumerator() { - return new ExcelColumnEnumerator(Range, ParentTable); + return new ColumnEnumerator(Range, ParentTable); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); - public ExcelColumn AddLeft() + public Column AddLeft() { Range.EntireColumn .Insert(XlInsertShiftDirection.xlShiftToRight, diff --git a/RhSolutions.AddIn/ExcelTable/ExcelColumnEnumerator.cs b/RhSolutions.ExcelExtensions/ColumnEnumerator.cs index c809c18..9880b5d 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelColumnEnumerator.cs +++ b/RhSolutions.ExcelExtensions/ColumnEnumerator.cs @@ -1,11 +1,11 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelColumnEnumerator : IEnumerator<ExcelTableCell> +public class ColumnEnumerator : IEnumerator<TableCell> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } private int position = 0; object IEnumerator.Current { @@ -15,13 +15,13 @@ public class ExcelColumnEnumerator : IEnumerator<ExcelTableCell> } } - public ExcelTableCell Current + public TableCell Current { get { try { - return new ExcelTableCell(Range.Cells[position, 1], ParentTable); + return new TableCell(Range.Cells[position, 1], ParentTable); } catch (IndexOutOfRangeException) { @@ -30,7 +30,7 @@ public class ExcelColumnEnumerator : IEnumerator<ExcelTableCell> } } - public ExcelColumnEnumerator(Range range, ExcelTable table) + public ColumnEnumerator(Range range, Table table) { Range = range; ParentTable = table; diff --git a/RhSolutions.AddIn/ExcelTable/ExcelColumns.cs b/RhSolutions.ExcelExtensions/Columns.cs index 4aacd6f..1fbc0ef 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelColumns.cs +++ b/RhSolutions.ExcelExtensions/Columns.cs @@ -1,23 +1,23 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelColumns : IEnumerable<ExcelColumn> +public class Columns : IEnumerable<Column> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } public int Length { get => Range.Columns.Count; } - public ExcelColumns(Range range, ExcelTable parentTable) + public Columns(Range range, Table parentTable) { Range = range; ParentTable = parentTable; } - public ExcelColumn this[int index] + public Column this[int index] { get { @@ -26,13 +26,13 @@ public class ExcelColumns : IEnumerable<ExcelColumn> throw new IndexOutOfRangeException(); } - return new ExcelColumn(Range.Columns[index + 1], ParentTable); + return new Column(Range.Columns[index + 1], ParentTable); } } - public IEnumerator<ExcelColumn> GetEnumerator() + public IEnumerator<Column> GetEnumerator() { - return new ExcelColumnsEnumerator(Range, ParentTable); + return new ColumnsEnumerator(Range, ParentTable); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); diff --git a/RhSolutions.AddIn/ExcelTable/ExcelColumnsEnumerator.cs b/RhSolutions.ExcelExtensions/ColumnsEnumerator.cs index 8c351e9..578e2b0 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelColumnsEnumerator.cs +++ b/RhSolutions.ExcelExtensions/ColumnsEnumerator.cs @@ -1,11 +1,11 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelColumnsEnumerator: IEnumerator<ExcelColumn> +public class ColumnsEnumerator: IEnumerator<Column> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } private int position = 0; object IEnumerator.Current { @@ -15,13 +15,13 @@ public class ExcelColumnsEnumerator: IEnumerator<ExcelColumn> } } - public ExcelColumn Current + public Column Current { get { try { - return new ExcelColumn(Range.Columns[position], ParentTable); + return new Column(Range.Columns[position], ParentTable); } catch (IndexOutOfRangeException) { @@ -30,7 +30,7 @@ public class ExcelColumnsEnumerator: IEnumerator<ExcelColumn> } } - public ExcelColumnsEnumerator(Range range, ExcelTable table) + public ColumnsEnumerator(Range range, Table table) { Range = range; ParentTable = table; diff --git a/RhSolutions.ExcelExtensions/RhSolutions.ExcelExtensions.csproj b/RhSolutions.ExcelExtensions/RhSolutions.ExcelExtensions.csproj new file mode 100644 index 0000000..bf58d4f --- /dev/null +++ b/RhSolutions.ExcelExtensions/RhSolutions.ExcelExtensions.csproj @@ -0,0 +1,15 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFrameworks>net472;net6.0-windows7.0</TargetFrameworks> + <LangVersion>10</LangVersion> + <ImplicitUsings>enable</ImplicitUsings> + <Nullable>enable</Nullable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="ExcelDna.Interop" Version="15.0.1" /> + <PackageReference Include="System.Net.Http" Version="4.3.4" /> + </ItemGroup> + +</Project> diff --git a/RhSolutions.AddIn/ExcelTable/ExcelRow.cs b/RhSolutions.ExcelExtensions/Row.cs index 231fd7c..32617b4 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelRow.cs +++ b/RhSolutions.ExcelExtensions/Row.cs @@ -1,8 +1,8 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public sealed class ExcelRow : ExcelTable, IEnumerable<ExcelTableCell> +public sealed class Row : Table, IEnumerable<TableCell> { public int Index { @@ -13,20 +13,20 @@ public sealed class ExcelRow : ExcelTable, IEnumerable<ExcelTableCell> get => Range.Columns.Count; } - public ExcelRow(Range range, ExcelTable table) : base(range, table) + public Row(Range range, Table table) : base(range, table) { Range = range; ParentTable = table; } - public ExcelTableCell this[int index] + public TableCell this[int index] { get => new(Range.Cells[1, index + 1], ParentTable); } - public IEnumerator<ExcelTableCell> GetEnumerator() + public IEnumerator<TableCell> GetEnumerator() { - return new ExcelRowEnumerator(Range, ParentTable); + return new RowEnumerator(Range, ParentTable); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); diff --git a/RhSolutions.AddIn/ExcelTable/ExcelRowEnumerator.cs b/RhSolutions.ExcelExtensions/RowEnumerator.cs index 58f88d8..fd56dcd 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelRowEnumerator.cs +++ b/RhSolutions.ExcelExtensions/RowEnumerator.cs @@ -1,11 +1,11 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelRowEnumerator : IEnumerator<ExcelTableCell> +public class RowEnumerator : IEnumerator<TableCell> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } private int position = 0; object IEnumerator.Current { @@ -15,13 +15,13 @@ public class ExcelRowEnumerator : IEnumerator<ExcelTableCell> } } - public ExcelTableCell Current + public TableCell Current { get { try { - return new ExcelTableCell(Range.Cells[1, position], ParentTable); + return new TableCell(Range.Cells[1, position], ParentTable); } catch (IndexOutOfRangeException) { @@ -30,7 +30,7 @@ public class ExcelRowEnumerator : IEnumerator<ExcelTableCell> } } - public ExcelRowEnumerator(Range range, ExcelTable parentTable) + public RowEnumerator(Range range, Table parentTable) { Range = range; ParentTable = parentTable; diff --git a/RhSolutions.AddIn/ExcelTable/ExcelRows.cs b/RhSolutions.ExcelExtensions/Rows.cs index 44602f0..1c0bc0d 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelRows.cs +++ b/RhSolutions.ExcelExtensions/Rows.cs @@ -1,23 +1,23 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelRows : IEnumerable<ExcelRow> +public class Rows : IEnumerable<Row> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } public int Length { get => Range.Rows.Count; } - public ExcelRows(Range range, ExcelTable parentTable) + public Rows(Range range, Table parentTable) { Range = range; ParentTable = parentTable; } - public ExcelRow this[int index] + public Row this[int index] { get { @@ -26,13 +26,13 @@ public class ExcelRows : IEnumerable<ExcelRow> throw new IndexOutOfRangeException(); } - return new ExcelRow(Range.Rows[index + 1], ParentTable); + return new Row(Range.Rows[index + 1], ParentTable); } } - public IEnumerator<ExcelRow> GetEnumerator() + public IEnumerator<Row> GetEnumerator() { - return new ExcelRowsEnumerator(Range, ParentTable); + return new RowsEnumerator(Range, ParentTable); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); diff --git a/RhSolutions.AddIn/ExcelTable/ExcelRowsEnumerator.cs b/RhSolutions.ExcelExtensions/RowsEnumerator.cs index e5430d1..b53db98 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelRowsEnumerator.cs +++ b/RhSolutions.ExcelExtensions/RowsEnumerator.cs @@ -1,11 +1,11 @@ using System.Collections; -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelRowsEnumerator : IEnumerator<ExcelRow> +public class RowsEnumerator : IEnumerator<Row> { public Range Range { get; } - public ExcelTable ParentTable { get; } + public Table ParentTable { get; } private int position = 0; object IEnumerator.Current { @@ -15,13 +15,13 @@ public class ExcelRowsEnumerator : IEnumerator<ExcelRow> } } - public ExcelRow Current + public Row Current { get { try { - return new ExcelRow(Range.Rows[position], ParentTable); + return new Row(Range.Rows[position], ParentTable); } catch (IndexOutOfRangeException) { @@ -30,7 +30,7 @@ public class ExcelRowsEnumerator : IEnumerator<ExcelRow> } } - public ExcelRowsEnumerator(Range range, ExcelTable table) + public RowsEnumerator(Range range, Table table) { Range = range; ParentTable = table; diff --git a/RhSolutions.AddIn/ExcelTable/ExcelTable.cs b/RhSolutions.ExcelExtensions/Table.cs index 2788036..a19a4b4 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelTable.cs +++ b/RhSolutions.ExcelExtensions/Table.cs @@ -1,34 +1,34 @@ -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public class ExcelTable +public class Table { public Range Range { get; protected set; } - public ExcelTable ParentTable { get; protected set; } - public ExcelRows Rows { get; } - public ExcelColumns Columns { get; } + public Table ParentTable { get; protected set; } + public Rows Rows { get; } + public Columns Columns { get; } - public ExcelTable(Range range) + public Table(Range range) { Range = range; ParentTable = null; - Rows = new ExcelRows(Range, this); - Columns = new ExcelColumns(Range, this); + Rows = new Rows(Range, this); + Columns = new Columns(Range, this); } - public ExcelTable(Range range, ExcelTable table) + public Table(Range range, Table table) { Range = range; ParentTable = table; - Rows = new ExcelRows(Range, this); - Columns = new ExcelColumns(Range, this); + Rows = new Rows(Range, this); + Columns = new Columns(Range, this); } - public ExcelTableCell this[int row, int column] + public TableCell this[int row, int column] { get => new(Range.Cells[row + 1, column + 1], this); } - public IEnumerable<ExcelTableCell> Find(object item) + public IEnumerable<TableCell> Find(object item) { Range firstFound = Range.Find(item); if (firstFound == null) @@ -40,7 +40,7 @@ public class ExcelTable while (true) { - yield return new ExcelTableCell(nextFound, ParentTable ?? this); + yield return new TableCell(nextFound, ParentTable ?? this); nextFound = Range.FindNext(nextFound); if (nextFound.Row == firstFound.Row diff --git a/RhSolutions.AddIn/ExcelTable/ExcelTableCell.cs b/RhSolutions.ExcelExtensions/TableCell.cs index 8f742d2..822673e 100644 --- a/RhSolutions.AddIn/ExcelTable/ExcelTableCell.cs +++ b/RhSolutions.ExcelExtensions/TableCell.cs @@ -1,12 +1,12 @@ -namespace RhSolutions.ExcelTable; +namespace RhSolutions.ExcelExtensions; -public sealed class ExcelTableCell : ExcelTable +public sealed class TableCell : Table { - public ExcelRow ParentRow + public Row ParentRow { get => ParentTable.Rows[ParentTable.Range.Row - Range.Row]; } - public ExcelColumn ParentColumn + public Column ParentColumn { get => ParentTable.Columns[ParentTable.Range.Column - Range.Column]; } @@ -16,7 +16,7 @@ public sealed class ExcelTableCell : ExcelTable set => Range.Cells[1, 1].Value2 = value; } - public ExcelTableCell(Range range, ExcelTable table) : base(range, table) + public TableCell(Range range, Table table) : base(range, table) { Range = range; ParentTable = table; diff --git a/RhSolutions.ExcelExtensions/Usings.cs b/RhSolutions.ExcelExtensions/Usings.cs new file mode 100644 index 0000000..94bcc5e --- /dev/null +++ b/RhSolutions.ExcelExtensions/Usings.cs @@ -0,0 +1,3 @@ +global using Microsoft.Office.Interop.Excel; +global using System.Collections.Generic; +global using Range = Microsoft.Office.Interop.Excel.Range;
\ No newline at end of file diff --git a/RhSolutions.Tests/ExcelTablesTests.cs b/RhSolutions.Tests/ExcelTablesTests.cs index 3ce71bc..78264ac 100644 --- a/RhSolutions.Tests/ExcelTablesTests.cs +++ b/RhSolutions.Tests/ExcelTablesTests.cs @@ -3,7 +3,7 @@ [ExcelTestSettings(OutOfProcess = true, Workbook = @"TestWorkbooks\ExcelTableTest.xlsx")] public class ExcelTablesTests : IDisposable { - ExcelTable.ExcelTable table; + ExcelExtensions.Table table; public ExcelTablesTests() { diff --git a/RhSolutions.Tests/Usings.cs b/RhSolutions.Tests/Usings.cs index 4b95659..bf19a29 100644 --- a/RhSolutions.Tests/Usings.cs +++ b/RhSolutions.Tests/Usings.cs @@ -1,5 +1,4 @@ -global using Xunit; +global using ExcelDna.Testing; global using Microsoft.Office.Interop.Excel; -global using ExcelDna.Testing; -global using RhSolutions.ExcelTable; global using RhSolutions.Services; +global using Xunit; diff --git a/RhSolutions.sln b/RhSolutions.sln index 8d94b9b..8db9bf3 100644 --- a/RhSolutions.sln +++ b/RhSolutions.sln @@ -7,6 +7,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RhSolutions.AddIn", "RhSolu EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RhSolutions.Tests", "RhSolutions.Tests\RhSolutions.Tests.csproj", "{6EECCDDB-741C-404A-874F-BB8656265162}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.ExcelExtensions", "RhSolutions.ExcelExtensions\RhSolutions.ExcelExtensions.csproj", "{ADB862A8-5CC6-4509-A4F7-9907E84F5801}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {6EECCDDB-741C-404A-874F-BB8656265162}.Debug|Any CPU.Build.0 = Debug|Any CPU {6EECCDDB-741C-404A-874F-BB8656265162}.Release|Any CPU.ActiveCfg = Release|Any CPU {6EECCDDB-741C-404A-874F-BB8656265162}.Release|Any CPU.Build.0 = Release|Any CPU + {ADB862A8-5CC6-4509-A4F7-9907E84F5801}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ADB862A8-5CC6-4509-A4F7-9907E84F5801}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ADB862A8-5CC6-4509-A4F7-9907E84F5801}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ADB862A8-5CC6-4509-A4F7-9907E84F5801}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE |