Move Excel extensions to own project
This commit is contained in:
parent
da29243d1d
commit
448af8ecd7
@ -36,4 +36,7 @@
|
|||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="RhSolutions.Sku" Version="0.1.1" />
|
<PackageReference Include="RhSolutions.Sku" Version="0.1.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\RhSolutions.ExcelExtensions\RhSolutions.ExcelExtensions.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
@ -1,8 +1,8 @@
|
|||||||
using System.Collections;
|
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
|
public string Header
|
||||||
{
|
{
|
||||||
@ -17,26 +17,26 @@ public sealed class ExcelColumn : ExcelTable, IEnumerable<ExcelTableCell>
|
|||||||
get => Range.Rows.Count;
|
get => Range.Rows.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelColumn(Range range, ExcelTable table) : base(range, table)
|
public Column(Range range, Table table) : base(range, table)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelTableCell this[int index]
|
public TableCell this[int index]
|
||||||
{
|
{
|
||||||
get => new(Range.Cells[index + 1, 1], ParentTable);
|
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();
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
||||||
|
|
||||||
|
|
||||||
public ExcelColumn AddLeft()
|
public Column AddLeft()
|
||||||
{
|
{
|
||||||
Range.EntireColumn
|
Range.EntireColumn
|
||||||
.Insert(XlInsertShiftDirection.xlShiftToRight,
|
.Insert(XlInsertShiftDirection.xlShiftToRight,
|
@ -1,11 +1,11 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelColumnEnumerator : IEnumerator<ExcelTableCell>
|
public class ColumnEnumerator : IEnumerator<TableCell>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
private int position = 0;
|
private int position = 0;
|
||||||
object IEnumerator.Current
|
object IEnumerator.Current
|
||||||
{
|
{
|
||||||
@ -15,13 +15,13 @@ public class ExcelColumnEnumerator : IEnumerator<ExcelTableCell>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelTableCell Current
|
public TableCell Current
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return new ExcelTableCell(Range.Cells[position, 1], ParentTable);
|
return new TableCell(Range.Cells[position, 1], ParentTable);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfRangeException)
|
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;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
@ -1,23 +1,23 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelColumns : IEnumerable<ExcelColumn>
|
public class Columns : IEnumerable<Column>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
public int Length
|
public int Length
|
||||||
{
|
{
|
||||||
get => Range.Columns.Count;
|
get => Range.Columns.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelColumns(Range range, ExcelTable parentTable)
|
public Columns(Range range, Table parentTable)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = parentTable;
|
ParentTable = parentTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelColumn this[int index]
|
public Column this[int index]
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@ -26,13 +26,13 @@ public class ExcelColumns : IEnumerable<ExcelColumn>
|
|||||||
throw new IndexOutOfRangeException();
|
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();
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
@ -1,11 +1,11 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelColumnsEnumerator: IEnumerator<ExcelColumn>
|
public class ColumnsEnumerator: IEnumerator<Column>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
private int position = 0;
|
private int position = 0;
|
||||||
object IEnumerator.Current
|
object IEnumerator.Current
|
||||||
{
|
{
|
||||||
@ -15,13 +15,13 @@ public class ExcelColumnsEnumerator: IEnumerator<ExcelColumn>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelColumn Current
|
public Column Current
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return new ExcelColumn(Range.Columns[position], ParentTable);
|
return new Column(Range.Columns[position], ParentTable);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfRangeException)
|
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;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
@ -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>
|
@ -1,8 +1,8 @@
|
|||||||
using System.Collections;
|
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
|
public int Index
|
||||||
{
|
{
|
||||||
@ -13,20 +13,20 @@ public sealed class ExcelRow : ExcelTable, IEnumerable<ExcelTableCell>
|
|||||||
get => Range.Columns.Count;
|
get => Range.Columns.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelRow(Range range, ExcelTable table) : base(range, table)
|
public Row(Range range, Table table) : base(range, table)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelTableCell this[int index]
|
public TableCell this[int index]
|
||||||
{
|
{
|
||||||
get => new(Range.Cells[1, index + 1], ParentTable);
|
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();
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
@ -1,11 +1,11 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelRowEnumerator : IEnumerator<ExcelTableCell>
|
public class RowEnumerator : IEnumerator<TableCell>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
private int position = 0;
|
private int position = 0;
|
||||||
object IEnumerator.Current
|
object IEnumerator.Current
|
||||||
{
|
{
|
||||||
@ -15,13 +15,13 @@ public class ExcelRowEnumerator : IEnumerator<ExcelTableCell>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelTableCell Current
|
public TableCell Current
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return new ExcelTableCell(Range.Cells[1, position], ParentTable);
|
return new TableCell(Range.Cells[1, position], ParentTable);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfRangeException)
|
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;
|
Range = range;
|
||||||
ParentTable = parentTable;
|
ParentTable = parentTable;
|
@ -1,23 +1,23 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelRows : IEnumerable<ExcelRow>
|
public class Rows : IEnumerable<Row>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
public int Length
|
public int Length
|
||||||
{
|
{
|
||||||
get => Range.Rows.Count;
|
get => Range.Rows.Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelRows(Range range, ExcelTable parentTable)
|
public Rows(Range range, Table parentTable)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = parentTable;
|
ParentTable = parentTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelRow this[int index]
|
public Row this[int index]
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
@ -26,13 +26,13 @@ public class ExcelRows : IEnumerable<ExcelRow>
|
|||||||
throw new IndexOutOfRangeException();
|
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();
|
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
@ -1,11 +1,11 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelRowsEnumerator : IEnumerator<ExcelRow>
|
public class RowsEnumerator : IEnumerator<Row>
|
||||||
{
|
{
|
||||||
public Range Range { get; }
|
public Range Range { get; }
|
||||||
public ExcelTable ParentTable { get; }
|
public Table ParentTable { get; }
|
||||||
private int position = 0;
|
private int position = 0;
|
||||||
object IEnumerator.Current
|
object IEnumerator.Current
|
||||||
{
|
{
|
||||||
@ -15,13 +15,13 @@ public class ExcelRowsEnumerator : IEnumerator<ExcelRow>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelRow Current
|
public Row Current
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
return new ExcelRow(Range.Rows[position], ParentTable);
|
return new Row(Range.Rows[position], ParentTable);
|
||||||
}
|
}
|
||||||
catch (IndexOutOfRangeException)
|
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;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
@ -1,34 +1,34 @@
|
|||||||
namespace RhSolutions.ExcelTable;
|
namespace RhSolutions.ExcelExtensions;
|
||||||
|
|
||||||
public class ExcelTable
|
public class Table
|
||||||
{
|
{
|
||||||
public Range Range { get; protected set; }
|
public Range Range { get; protected set; }
|
||||||
public ExcelTable ParentTable { get; protected set; }
|
public Table ParentTable { get; protected set; }
|
||||||
public ExcelRows Rows { get; }
|
public Rows Rows { get; }
|
||||||
public ExcelColumns Columns { get; }
|
public Columns Columns { get; }
|
||||||
|
|
||||||
public ExcelTable(Range range)
|
public Table(Range range)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = null;
|
ParentTable = null;
|
||||||
Rows = new ExcelRows(Range, this);
|
Rows = new Rows(Range, this);
|
||||||
Columns = new ExcelColumns(Range, this);
|
Columns = new Columns(Range, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExcelTable(Range range, ExcelTable table)
|
public Table(Range range, Table table)
|
||||||
{
|
{
|
||||||
Range = range;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
||||||
Rows = new ExcelRows(Range, this);
|
Rows = new Rows(Range, this);
|
||||||
Columns = new ExcelColumns(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);
|
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);
|
Range firstFound = Range.Find(item);
|
||||||
if (firstFound == null)
|
if (firstFound == null)
|
||||||
@ -40,7 +40,7 @@ public class ExcelTable
|
|||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
yield return new ExcelTableCell(nextFound, ParentTable ?? this);
|
yield return new TableCell(nextFound, ParentTable ?? this);
|
||||||
nextFound = Range.FindNext(nextFound);
|
nextFound = Range.FindNext(nextFound);
|
||||||
|
|
||||||
if (nextFound.Row == firstFound.Row
|
if (nextFound.Row == firstFound.Row
|
@ -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];
|
get => ParentTable.Rows[ParentTable.Range.Row - Range.Row];
|
||||||
}
|
}
|
||||||
public ExcelColumn ParentColumn
|
public Column ParentColumn
|
||||||
{
|
{
|
||||||
get => ParentTable.Columns[ParentTable.Range.Column - Range.Column];
|
get => ParentTable.Columns[ParentTable.Range.Column - Range.Column];
|
||||||
}
|
}
|
||||||
@ -16,7 +16,7 @@ public sealed class ExcelTableCell : ExcelTable
|
|||||||
set => Range.Cells[1, 1].Value2 = value;
|
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;
|
Range = range;
|
||||||
ParentTable = table;
|
ParentTable = table;
|
3
RhSolutions.ExcelExtensions/Usings.cs
Normal file
3
RhSolutions.ExcelExtensions/Usings.cs
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
global using Microsoft.Office.Interop.Excel;
|
||||||
|
global using System.Collections.Generic;
|
||||||
|
global using Range = Microsoft.Office.Interop.Excel.Range;
|
@ -3,7 +3,7 @@
|
|||||||
[ExcelTestSettings(OutOfProcess = true, Workbook = @"TestWorkbooks\ExcelTableTest.xlsx")]
|
[ExcelTestSettings(OutOfProcess = true, Workbook = @"TestWorkbooks\ExcelTableTest.xlsx")]
|
||||||
public class ExcelTablesTests : IDisposable
|
public class ExcelTablesTests : IDisposable
|
||||||
{
|
{
|
||||||
ExcelTable.ExcelTable table;
|
ExcelExtensions.Table table;
|
||||||
|
|
||||||
public ExcelTablesTests()
|
public ExcelTablesTests()
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
global using Xunit;
|
global using ExcelDna.Testing;
|
||||||
global using Microsoft.Office.Interop.Excel;
|
global using Microsoft.Office.Interop.Excel;
|
||||||
global using ExcelDna.Testing;
|
|
||||||
global using RhSolutions.ExcelTable;
|
|
||||||
global using RhSolutions.Services;
|
global using RhSolutions.Services;
|
||||||
|
global using Xunit;
|
||||||
|
@ -7,6 +7,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RhSolutions.AddIn", "RhSolu
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RhSolutions.Tests", "RhSolutions.Tests\RhSolutions.Tests.csproj", "{6EECCDDB-741C-404A-874F-BB8656265162}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RhSolutions.Tests", "RhSolutions.Tests\RhSolutions.Tests.csproj", "{6EECCDDB-741C-404A-874F-BB8656265162}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RhSolutions.ExcelExtensions", "RhSolutions.ExcelExtensions\RhSolutions.ExcelExtensions.csproj", "{ADB862A8-5CC6-4509-A4F7-9907E84F5801}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
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}.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.ActiveCfg = Release|Any CPU
|
||||||
{6EECCDDB-741C-404A-874F-BB8656265162}.Release|Any CPU.Build.0 = 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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
Loading…
Reference in New Issue
Block a user