Skip to content

Commit 403a7db

Browse files
Pankratyb0bi79
authored andcommitted
Upgrade to ClosedXML 0.95 (#73)
Great work, thanks Alexey. I will make my small edits and it will be possible to make a release. * Upgrade ClosedXML to 0.95.0-beta1. Fix compilation issues * Modify code according to changes in ClosedXML 0.95 * Remove obsolete code * Upgrade a reference file: consolidate conditional formats and other minor changes * Use pattern matching and other small refactoring * Upgrade xUnit version * Bump version to 0.2.0
1 parent 49fe4f2 commit 403a7db

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+338
-457
lines changed

ClosedXML.Report/ClosedXML.Report.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<RepositoryUrl>https://github.com/ClosedXML/ClosedXML.Report</RepositoryUrl>
1212
<Authors>Alexey Rozhkov</Authors>
1313
<Copyright>MIT</Copyright>
14-
<Version>0.1.0.0</Version>
14+
<Version>0.2.0.0</Version>
1515
<Product>ClosedXML.Report</Product>
1616
<PackageReleaseNotes>See https://github.com/ClosedXML/ClosedXML.Report/releases/tag/$(productVersion)</PackageReleaseNotes>
1717
<Description>ClosedXML.Report is a tool for report generation and data analysis in .NET applications through the use of Microsoft Excel. ClosedXML.Report is a .NET-library for report generation Microsoft Excel without requiring Excel to be installed on the machine that's running the code.</Description>
@@ -44,9 +44,10 @@
4444
</PropertyGroup>
4545

4646
<ItemGroup>
47-
<PackageReference Include="ClosedXML" Version="0.92.1" />
47+
<PackageReference Include="ClosedXML.Signed" Version="0.95.0-beta1" Condition="'$(Configuration)'=='Release.Signed'"/>
48+
<PackageReference Include="ClosedXML" Version="0.95.0-beta1" Condition="'$(Configuration)'!='Release.Signed'"/>
49+
<PackageReference Include="morelinq" Version="2.9.0" />
4850
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.0.9" />
49-
<PackageReference Include="System.ValueTuple" Version="4.3.0" />
5051
</ItemGroup>
5152

5253
</Project>

ClosedXML.Report/Excel/AddressChangedEventArgs.cs

Lines changed: 0 additions & 41 deletions
This file was deleted.

ClosedXML.Report/Excel/Subtotal.cs

Lines changed: 123 additions & 117 deletions
Large diffs are not rendered by default.

ClosedXML.Report/Excel/SubtotalGroup.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
namespace ClosedXML.Report.Excel
55
{
6-
public class SubtotalGroup : IDisposable
6+
public class SubtotalGroup
77
{
88
public int Level { get; private set; }
99
public int Column { get; set; }
@@ -22,11 +22,5 @@ public SubtotalGroup(int level, int column, string groupTitle, IXLRange range, I
2222
GroupTitle = groupTitle;
2323
Range = range;
2424
}
25-
26-
public void Dispose()
27-
{
28-
Range?.Dispose();
29-
SummaryRow?.Dispose();
30-
}
3125
}
3226
}

ClosedXML.Report/Excel/TempSheetBuffer.cs

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1+
using ClosedXML.Excel;
12
using System;
23
using System.Collections.Generic;
34
using System.Linq;
4-
using ClosedXML.Excel;
5-
using ClosedXML.Report.Utils;
65

76
namespace ClosedXML.Report.Excel
87
{
@@ -15,8 +14,6 @@ internal class TempSheetBuffer: IReportBuffer
1514
private int _clmn;
1615
private int _prevrow;
1716
private int _prevclmn;
18-
private int _maxClmn;
19-
private int _maxRow;
2017

2118
public TempSheetBuffer(XLWorkbook wb)
2219
{
@@ -36,22 +33,27 @@ private void Init()
3633
_sheet = _wb.AddWorksheet(SheetName);
3734
_sheet.SetCalcEngineCacheExpressions(false);
3835
}
39-
//_sheet.Visibility = XLWorksheetVisibility.VeryHidden;
36+
_sheet.Visibility = XLWorksheetVisibility.VeryHidden;
4037
}
41-
_row = 1;
42-
_clmn = 1;
43-
_maxRow = _prevrow = 1;
44-
_maxClmn = _prevclmn = 1;
38+
_row = _prevrow = 1;
39+
_clmn = _prevclmn = 1;
4540
Clear();
41+
_sheet.Style = _wb.Worksheets.First().Style;
4642
}
4743

4844
public void WriteValue(object value, IXLStyle cellStyle)
4945
{
5046
var xlCell = _sheet.Cell(_row, _clmn);
51-
xlCell.SetValue(value);
47+
try
48+
{
49+
xlCell.SetValue(value);
50+
}
51+
catch (ArgumentException)
52+
{
53+
xlCell.SetValue(value?.ToString());
54+
}
55+
5256
xlCell.Style = cellStyle ?? _wb.Style;
53-
_maxClmn = Math.Max(_maxClmn, _clmn);
54-
_maxRow = Math.Max(_maxRow, _row);
5557
ChangeAddress(_row, _clmn + 1);
5658
}
5759

@@ -60,8 +62,6 @@ public void WriteFormulaR1C1(string formula, IXLStyle cellStyle)
6062
var xlCell = _sheet.Cell(_row, _clmn);
6163
xlCell.Style = cellStyle;
6264
xlCell.SetFormulaR1C1(formula);
63-
_maxClmn = Math.Max(_maxClmn, _clmn);
64-
_maxRow = Math.Max(_maxRow, _row);
6565
ChangeAddress(_row, _clmn + 1);
6666
}
6767

@@ -92,15 +92,13 @@ private void ChangeAddress(int row, int clmn)
9292

9393
public IXLRange CopyTo(IXLRange range)
9494
{
95-
// LastCellUsed may produce the wrong result, see https://github.com/ClosedXML/ClosedXML/issues/339
96-
var lastCell = _sheet.Cell(
97-
_sheet.LastRowUsed(true)?.RowNumber() ?? 1,
98-
_sheet.LastColumnUsed(true)?.ColumnNumber()?? 1);
99-
var tempRng = _sheet.Range(_sheet.Cell(1, 1), lastCell);
95+
var firstCell = _sheet.Cell(1, 1);
96+
var lastCell = _sheet.LastCellUsed(XLCellsUsedOptions.All) ?? firstCell;
97+
var tempRng = _sheet.Range(firstCell, lastCell);
10098

10199
var rowDiff = tempRng.RowCount() - range.RowCount();
102100
if (rowDiff > 0)
103-
range.LastRow().Unsubscribed().RowAbove().Unsubscribed().InsertRowsBelow(rowDiff, true);
101+
range.LastRow().RowAbove().InsertRowsBelow(rowDiff, true);
104102
else if (rowDiff < 0)
105103
range.Worksheet.Range(
106104
range.LastRow().RowNumber() + rowDiff + 1,
@@ -126,32 +124,31 @@ public IXLRange CopyTo(IXLRange range)
126124

127125
var tgtSheet = range.Worksheet;
128126
var tgtStartRow = range.RangeAddress.FirstAddress.RowNumber;
129-
using (var srcRows = _sheet.Rows(tempRng.RangeAddress.FirstAddress.RowNumber, tempRng.RangeAddress.LastAddress.RowNumber))
130-
foreach (var row in srcRows)
131-
{
132-
var xlRow = tgtSheet.Row(row.RowNumber() + tgtStartRow-1);
133-
xlRow.OutlineLevel = row.OutlineLevel;
134-
if (row.IsHidden)
135-
xlRow.Collapse();
136-
else
137-
xlRow.Expand();
138-
}
127+
var srcRows = _sheet.Rows(tempRng.RangeAddress.FirstAddress.RowNumber, tempRng.RangeAddress.LastAddress.RowNumber);
128+
foreach (var row in srcRows)
129+
{
130+
var xlRow = tgtSheet.Row(row.RowNumber() + tgtStartRow-1);
131+
xlRow.OutlineLevel = row.OutlineLevel;
132+
if (row.IsHidden)
133+
xlRow.Collapse();
134+
else
135+
xlRow.Expand();
136+
}
139137
return range;
140138
}
141139

142140
public void Clear()
143141
{
144-
using (var srcRows = _sheet.RowsUsed(true))
145-
foreach (var row in srcRows)
146-
{
147-
row.OutlineLevel = 0;
148-
}
142+
var srcRows = _sheet.RowsUsed(XLCellsUsedOptions.All);
143+
foreach (var row in srcRows)
144+
{
145+
row.OutlineLevel = 0;
146+
}
149147
_sheet.Clear();
150148
}
151149

152150
public void AddConditionalFormats(IEnumerable<IXLConditionalFormat> formats, IXLRangeBase fromRange, IXLRangeBase toRange)
153151
{
154-
//var tempRng = _sheet.Range(_sheet.Cell(1, 1), _sheet.Cell(_prevrow, _prevclmn));
155152
foreach (var format in formats)
156153
{
157154
format.CopyRelative(fromRange, toRange, true);

ClosedXML.Report/Excel/XLCallbackAction.cs

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)