Letzte Zeile eines Mappers

Hallo Team,


gibt es eine einfache Möglichkeit, die letzte Zeile eines Mappers in einer Formel zu verwenden? Also à la <#if row?is_last> oder so? Ich weiß, daß das genau so nicht funktioniert, weil is_last ein Loop braucht, aber ihr versteht sicher, was ich will.


Gruß Micha

Hallo Micha,


eine Funktion die auf die letzte Zeile zugreifen kann gibt es nicht.


Du könntest einen Mapper vor deiner Berechnung hinzufügen und in diesem nach einem festen Wert gruppieren. In der Spalte die du benötigst kannst du als Aggregatfunktion "Wert der letzten Zeile" auswählen. Danach kannst du über ${spreadsheet@SpreadsheetMapper_X.firstRow("spalte")} auf den Wert der letzten Zeile in dieser Spalte zugreifen. Falls du den Wert an mehreren Stellen benötigst am besten den Cache Modus im Mapper mit der Gruppierung aktivieren.


Viele Grüße

Torsten

Hallo zusammen,


gibt auch Möglichkeiten, dass in Freemarker selbst zu lösen.

<#assign total_rows = output@Excel2Spreadsheet_83.getRows()?sequence?size>
<#list output@Excel2Spreadsheet_83.getRows() as row>
  <#-- Hier die generelle Verarbeitung -->
  <#if row.rowNumber == total_rows>
  		<#-- Hier die zusätzliche Verarbeitung für die letzte Zeile -->
  </#if>
</#list>
  

spreadsheet@SpreadsheetMapper_X.getRows()?sequence?size liefert die Anzahl an Zeilen im Spreadsheet und row.rowNumber die aktuelle Zeilennummer. Wenn die aktuelle Zeilennummer gleich der Anzahl an Zeilen im Spreadsheet ist, befinden wir uns in der letzten Zeile.




Wenn du nur auf die letzte Reihe zugreifen willst und das Spreadsheet garnicht zeilenweise verarbeiten musst, kannst du auch direkt auf die letzte Reihe zugreifen.

${output@Excel2Spreadsheet_83.getRows()?sequence?last.get("Zeile2")}

Gruß

Gustav