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 @@
+
+
+
\ No newline at end of file
diff --git a/RhSolutions.AddIn/ExcelTable/ExcelColumn.cs b/RhSolutions.ExcelExtensions/Column.cs
similarity index 65%
rename from RhSolutions.AddIn/ExcelTable/ExcelColumn.cs
rename to 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
+public sealed class Column : Table, IEnumerable
{
public string Header
{
@@ -17,26 +17,26 @@ public sealed class ExcelColumn : ExcelTable, IEnumerable
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 GetEnumerator()
+ public IEnumerator 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
similarity index 68%
rename from RhSolutions.AddIn/ExcelTable/ExcelColumnEnumerator.cs
rename to 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
+public class ColumnEnumerator : IEnumerator
{
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
}
}
- 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
}
}
- 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
similarity index 53%
rename from RhSolutions.AddIn/ExcelTable/ExcelColumns.cs
rename to 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
+public class Columns : IEnumerable
{
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
throw new IndexOutOfRangeException();
}
- return new ExcelColumn(Range.Columns[index + 1], ParentTable);
+ return new Column(Range.Columns[index + 1], ParentTable);
}
}
- public IEnumerator GetEnumerator()
+ public IEnumerator 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
similarity index 68%
rename from RhSolutions.AddIn/ExcelTable/ExcelColumnsEnumerator.cs
rename to 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
+public class ColumnsEnumerator: IEnumerator
{
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
}
}
- 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
}
}
- 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 @@
+
+
+
+ net472;net6.0-windows7.0
+ 10
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/RhSolutions.AddIn/ExcelTable/ExcelRow.cs b/RhSolutions.ExcelExtensions/Row.cs
similarity index 54%
rename from RhSolutions.AddIn/ExcelTable/ExcelRow.cs
rename to 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
+public sealed class Row : Table, IEnumerable
{
public int Index
{
@@ -13,20 +13,20 @@ public sealed class ExcelRow : ExcelTable, IEnumerable
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 GetEnumerator()
+ public IEnumerator 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
similarity index 68%
rename from RhSolutions.AddIn/ExcelTable/ExcelRowEnumerator.cs
rename to 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
+public class RowEnumerator : IEnumerator
{
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
}
}
- 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
}
}
- 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
similarity index 54%
rename from RhSolutions.AddIn/ExcelTable/ExcelRows.cs
rename to 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
+public class Rows : IEnumerable
{
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
throw new IndexOutOfRangeException();
}
- return new ExcelRow(Range.Rows[index + 1], ParentTable);
+ return new Row(Range.Rows[index + 1], ParentTable);
}
}
- public IEnumerator GetEnumerator()
+ public IEnumerator 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
similarity index 69%
rename from RhSolutions.AddIn/ExcelTable/ExcelRowsEnumerator.cs
rename to 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
+public class RowsEnumerator : IEnumerator
{
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
}
}
- 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
}
}
- 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
similarity index 51%
rename from RhSolutions.AddIn/ExcelTable/ExcelTable.cs
rename to 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 Find(object item)
+ public IEnumerable 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
similarity index 61%
rename from RhSolutions.AddIn/ExcelTable/ExcelTableCell.cs
rename to 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