From 1e8a468bf79159eb181f50b71e0f78971afd4d67 Mon Sep 17 00:00:00 2001 From: Malov Gleb Date: Wed, 3 Jul 2024 15:41:36 +0500 Subject: [PATCH 1/3] Add height and heightrange tags --- ClosedXML.Report/Options/HeightRangeTag.cs | 18 ++++++++++++++++++ ClosedXML.Report/Options/HeightTag.cs | 17 +++++++++++++++++ ClosedXML.Report/RangeTemplate.cs | 17 ++++++++++++----- ClosedXML.Report/XLTemplate.cs | 2 ++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 ClosedXML.Report/Options/HeightRangeTag.cs create mode 100644 ClosedXML.Report/Options/HeightTag.cs diff --git a/ClosedXML.Report/Options/HeightRangeTag.cs b/ClosedXML.Report/Options/HeightRangeTag.cs new file mode 100644 index 0000000..e24459b --- /dev/null +++ b/ClosedXML.Report/Options/HeightRangeTag.cs @@ -0,0 +1,18 @@ +using System.Linq; +using ClosedXML.Report.Utils; + +namespace ClosedXML.Report.Options +{ + public class HeightRangeTag : RangeOptionTag + { + public int Height => Parameters.Any() ? Parameters.First().Key.AsInt() : 0; + + public override void Execute(ProcessingContext context) + { + var firstRow = context.Range.FirstRowUsed(); + var lastRow = context.Range.LastRowUsed(); + + Range.Worksheet.Rows(firstRow.WorksheetRow().RowNumber(), lastRow.WorksheetRow().RowNumber()).Height = Height; + } + } +} diff --git a/ClosedXML.Report/Options/HeightTag.cs b/ClosedXML.Report/Options/HeightTag.cs new file mode 100644 index 0000000..3b5c2a6 --- /dev/null +++ b/ClosedXML.Report/Options/HeightTag.cs @@ -0,0 +1,17 @@ +using System.Linq; +using ClosedXML.Report.Utils; + +namespace ClosedXML.Report.Options; + +public class HeightTag : OptionTag +{ + public int Height => Parameters.Any() ? Parameters.First().Key.AsInt() : 0; + + public override void Execute(ProcessingContext context) + { + var xlCell = Cell.GetXlCell(context.Range); + var cellRow = xlCell.WorksheetRow().RowNumber(); + + Range.Worksheet.Rows(cellRow, cellRow).Height = Height; + } +} diff --git a/ClosedXML.Report/RangeTemplate.cs b/ClosedXML.Report/RangeTemplate.cs index 99e0416..bdabddf 100644 --- a/ClosedXML.Report/RangeTemplate.cs +++ b/ClosedXML.Report/RangeTemplate.cs @@ -146,11 +146,11 @@ private static IEnumerable GetInnerRanges(IXLRange prng) public IReportBuffer Generate(object[] items) { _evaluator.AddVariable("items", items); + foreach (var v in _globalVariables) { _evaluator.AddVariable("@" + v.Key, v.Value); } - _rangeTags.Reset(); if (IsHorizontal) { @@ -160,6 +160,7 @@ public IReportBuffer Generate(object[] items) { VerticalTable(items, _evaluator); } + return _buff; } @@ -482,10 +483,16 @@ where TagExtensions.HasTag(value) tags = _tagsEvaluator.Parse(cell.GetString(), range, cell, out newValue); cell.Value = newValue; } - if (cell.Row > 1 && cell.Row == _rowCnt) - _rangeTags.AddRange(tags); - else - _tags.AddRange(tags); + + foreach (var optionTag in tags) + { + if (cell.Row > 1 && cell.Row == _rowCnt) + _rangeTags.Add(optionTag); + else if (optionTag is RangeOptionTag) + _rangeTags.Add(optionTag); + else + _tags.Add(optionTag); + } } _rangeOption = _rangeTags.GetAll().Union(_tags.GetAll()).FirstOrDefault(); diff --git a/ClosedXML.Report/XLTemplate.cs b/ClosedXML.Report/XLTemplate.cs index 3af8b40..04283e3 100644 --- a/ClosedXML.Report/XLTemplate.cs +++ b/ClosedXML.Report/XLTemplate.cs @@ -58,6 +58,8 @@ static XLTemplate() TagsRegister.Add("Hide", 0); TagsRegister.Add("PageOptions", 0); TagsRegister.Add("Protected", 0); + TagsRegister.Add("Height", 0); + TagsRegister.Add("HeightRange", 0); } public XLTemplate(string fileName) : this(new XLWorkbook(fileName)) From ab21ee0ff0a605910361f6ac132575a0a0cce4fa Mon Sep 17 00:00:00 2001 From: Malov Gleb Date: Thu, 4 Jul 2024 11:06:58 +0500 Subject: [PATCH 2/3] Add tests --- ClosedXML.Report/Options/HeightTag.cs | 2 +- ClosedXML.Report/RangeTemplate.cs | 2 + .../ClosedXML.Report.Tests/HeightTagTests.cs | 52 ++++++++++++++++++ tests/Gauges/HeightRangeTag.xlsx | Bin 0 -> 8113 bytes tests/Gauges/HeightTag.xlsx | Bin 0 -> 8460 bytes tests/Templates/4D366000 | Bin 0 -> 8586 bytes tests/Templates/HeightRangeTag.xlsx | Bin 0 -> 8612 bytes tests/Templates/HeightTag.xlsx | Bin 0 -> 8430 bytes 8 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 tests/ClosedXML.Report.Tests/HeightTagTests.cs create mode 100644 tests/Gauges/HeightRangeTag.xlsx create mode 100644 tests/Gauges/HeightTag.xlsx create mode 100644 tests/Templates/4D366000 create mode 100644 tests/Templates/HeightRangeTag.xlsx create mode 100644 tests/Templates/HeightTag.xlsx diff --git a/ClosedXML.Report/Options/HeightTag.cs b/ClosedXML.Report/Options/HeightTag.cs index 3b5c2a6..e2c0728 100644 --- a/ClosedXML.Report/Options/HeightTag.cs +++ b/ClosedXML.Report/Options/HeightTag.cs @@ -12,6 +12,6 @@ public override void Execute(ProcessingContext context) var xlCell = Cell.GetXlCell(context.Range); var cellRow = xlCell.WorksheetRow().RowNumber(); - Range.Worksheet.Rows(cellRow, cellRow).Height = Height; + Range.Worksheet.Row(cellRow).Height = Height; } } diff --git a/ClosedXML.Report/RangeTemplate.cs b/ClosedXML.Report/RangeTemplate.cs index bdabddf..fa03330 100644 --- a/ClosedXML.Report/RangeTemplate.cs +++ b/ClosedXML.Report/RangeTemplate.cs @@ -151,6 +151,8 @@ public IReportBuffer Generate(object[] items) { _evaluator.AddVariable("@" + v.Key, v.Value); } + _rangeTags.Reset(); + if (IsHorizontal) { diff --git a/tests/ClosedXML.Report.Tests/HeightTagTests.cs b/tests/ClosedXML.Report.Tests/HeightTagTests.cs new file mode 100644 index 0000000..3f03ff4 --- /dev/null +++ b/tests/ClosedXML.Report.Tests/HeightTagTests.cs @@ -0,0 +1,52 @@ +using System.Linq; +using ClosedXML.Report.Tests.TestModels; +using Xunit; +using Xunit.Abstractions; + +namespace ClosedXML.Report.Tests; + +[Collection("Database")] +public class HeightTagTests : XlsxTemplateTestsBase +{ + public HeightTagTests(ITestOutputHelper output) : base(output) + { + } + + [Theory, + InlineData("HeightTag.xlsx") + ] + public void Height(string templateFile) + { + XlTemplateTest(templateFile, + tpl => + { + + }, + wb => + { + CompareWithGauge(wb, templateFile); + }); + } + + [Theory, + InlineData("HeightRangeTag.xlsx") + ] + public void HeightRange(string templateFile) + { + XlTemplateTest(templateFile, + tpl => + { + using var db = new DbDemos(); + var cust = db.employees.Take(2).ToList(); + var dataTable = new + { + Table = cust + }; + tpl.AddVariable(dataTable); + }, + wb => + { + CompareWithGauge(wb, templateFile); + }); + } +} diff --git a/tests/Gauges/HeightRangeTag.xlsx b/tests/Gauges/HeightRangeTag.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4f770e2c19b6768d0a34318d6e94b694ef7668ce GIT binary patch literal 8113 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 T_Jsiebl5K#R$P%i`tkHXH8$D? literal 0 HcmV?d00001 diff --git a/tests/Gauges/HeightTag.xlsx b/tests/Gauges/HeightTag.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f06b697f4ad06d05d34ad6976f0950b1f6885701 GIT binary patch literal 8460 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 La`&YE@$G*A<1uX$ literal 0 HcmV?d00001 diff --git a/tests/Templates/4D366000 b/tests/Templates/4D366000 new file mode 100644 index 0000000000000000000000000000000000000000..629cb666b9f556b5864d300051ef6bdc917a36f6 GIT binary patch literal 8586 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 literal 0 HcmV?d00001 From 151a795431aec01ba1cbdefb56321879e37945dd Mon Sep 17 00:00:00 2001 From: Malov Gleb Date: Sat, 6 Jul 2024 14:17:55 +0500 Subject: [PATCH 3/3] Removed file --- tests/Templates/4D366000 | Bin 8586 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/Templates/4D366000 diff --git a/tests/Templates/4D366000 b/tests/Templates/4D366000 deleted file mode 100644 index 629cb666b9f556b5864d300051ef6bdc917a36f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8586 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