Reputation: 31
I'm exporting this from ReportServer, it goes SQL->Excel Template, and I use jxls to style and format. And JXLS relies on JEXL scripting syntax, which I am not familiar with.
Now, I have rows like below, and I want to add a total row after each name/id, totaling the number of credits a person took across all terms. I'm totally perplexed on what to do.
id | name | term | credits |
---|---|---|---|
1 | taz | 2010 | 7 |
1 | taz | 2011 | 6 |
1 | taz | 2012 | 11 |
2 | bob | 2022 | 30 |
2 | bob | 2022 | 26 |
My goal is this:
id | name | term | credits |
---|---|---|---|
1 | taz | 2010 | 7 |
- | 2011 | 6 | |
- | 2012 | 11 | |
- | taz Total | 24 | |
2 | bob | 2022 | 30 |
- | - | 2022 | 26 |
- | bob Total | 56 |
<table style="width: 50%; border-collapse: collapse; margin: 20px 0; font-size: 18px; text-align: left;">
<tr>
<th style="border: 1px solid #ddd; padding: 8px; background-color: #f2f2f2;">id</th>
<th style="border: 1px solid #ddd; padding: 8px; background-color: #f2f2f2;">name</th>
<th style="border: 1px solid #ddd; padding: 8px; background-color: #f2f2f2;">term</th>
<th style="border: 1px solid #ddd; padding: 8px; background-color: #f2f2f2;">credits</th>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">1</td>
<td style="border: 1px solid #ddd; padding: 8px;">taz</td>
<td style="border: 1px solid #ddd; padding: 8px;">2010</td>
<td style="border: 1px solid #ddd; padding: 8px;">7</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">2011</td>
<td style="border: 1px solid #ddd; padding: 8px;">6</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">2012</td>
<td style="border: 1px solid #ddd; padding: 8px;">11</td>
</tr>
<tr style="background-color: #ffff99;">
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">taz Total</td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">24</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">2</td>
<td style="border: 1px solid #ddd; padding: 8px;">bob</td>
<td style="border: 1px solid #ddd; padding: 8px;">2022</td>
<td style="border: 1px solid #ddd; padding: 8px;">30</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">2022</td>
<td style="border: 1px solid #ddd; padding: 8px;">26</td>
</tr>
<tr style="background-color: #ffff99;">
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">bob Total</td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
<td style="border: 1px solid #ddd; padding: 8px;">56</td>
</tr>
</table>
I am using the JX comment markup inside of excel comments and cells. My code right now is about as simple as it gets.
On my 1st sheet that puts the raw data (it's called 'Dynamic list'):
A1=ID, A1.Comment=jx:area(lastCell="C2")
A2=${row.ID}, A2.Comment=jx:each(items="data" var="row" lastCell="C2")
..
On my second sheet that formats the data:
A1=ID,
A1.Comment=jx:area(lastCell="C2")
A2.formula=IF(COUNTIF('Dynamic list'!$A$2:A2, 'Dynamic list'!A2) > 1, "", 'Dynamic list'!A2),
A2.Comment=jx:each (items="data" var="row" lastCell="C2")
..
Upvotes: 0
Views: 46