ClosedXML / ClosedXML/ClosedXML.Report
Conditional formatting breaks in template with multiple tables one below other
- Dominant language
- C#
- Stars
- 647
- Forks
- 122
- PR merge metrics
- No merged PRs in 30d
Description
Conditional formatting breaks when used inside template with multiple tables one after the other.
Template broken:
[repro-template-broken.xlsx](https://github.com/ClosedXML/ClosedXML.Report/files/15161795/repro-template-broken.xlsx)
Template working:
[repro-template-working.xlsx](https://github.com/ClosedXML/ClosedXML.Report/files/15161798/repro-template-working.xlsx)
Code:
```
using ClosedXML.Report;
var data = new
{
Directors = new[]
{
new { Director = "Steven Spielberg", Movie = "Jaws" },
new { Director = "Quentin Tarantino", Movie = "Pulp Fiction" },
new { Director = "Steven Spielberg", Movie = "E.T." },
new { Director = "Quentin Tarantino", Movie = "" },
new { Director = "Steven Spielberg", Movie = "Jurassic Park" },
new { Director = "Quentin Tarantino", Movie = "" },
new { Director = "Steven Spielberg", Movie = "Indiana Jones" },
},
Genres = new[]
{
new { Movie = "Jaws", Genre = "Thriller" },
new { Movie = "Pulp Fiction", Genre = "" },
new { Movie = "E.T.", Genre = "Sci-Fi" },
new { Movie = "Kill Bill", Genre = "" },
new { Movie = "Jurassic Park", Genre = "Sci-Fi" },
new { Movie = "Reservoir Dogs", Genre = "Thriller" },
new { Movie = "Indiana Jones", Genre = "" },
new { Movie = "E.T.", Genre = "Family" },
new { Movie = "Jaws", Genre = "Horror" },
},
Actors = new[]
{
new { Movie = "Jaws", Actor = "Roy Scheider" },
new { Movie = "Pulp Fiction", Actor = "John Travolta" },
new { Movie = "E.T.", Actor = "" },
new { Movie = "E.T.", Actor = "Henry Thomas" },
new { Movie = "Kill Bill", Actor = "" }
},
};
void GenerateWithClosedXML()
{
const string outputFile = "./output.xlsx";
var template = new XLTemplate(@"./repro-template-broken.xlsx");
// var template = new XLTemplate(@"./repro-template-working.xlsx");
template.AddVariable(data);
template.Generate();
template.SaveAs(outputFile);
}
GenerateWithClosedXML();
```
Repro steps:
1. Run attached code
2. Observe conditional formatting is applied in wrong place
Results:
Template should color the cell in red if value is empty:

However after generating the output conditional formatting breaks for the second table:

Note: if the gap between tables is more than 4 lines conditional formatting is applied correctly (as seen in repro-template-working.xlsx)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.