SmartMarker Einzelzellen-Array-Rendering | Aspose.Cells .NET

Introduction

Smart Markers in Aspose.Cells sind eine leistungsstarke, vorlagenbasierte Funktion, mit der Sie Tabellenkalkulationsdaten dynamisch mithilfe von Marker-Ausdrücken wie &=DataSource.Field befüllen können. Der Marker wird in einer Designer-Arbeitsmappe platziert, und wenn die Vorlage durch den WorkbookDesigner verarbeitet wird, werden die Marker durch Werte aus der bereitgestellten Datenquelle ersetzt. Standardmäßig expandiert die Engine das Array und platziert jedes Element in einer separaten angrenzenden Zelle, wenn ein Smart Marker auf eine Array-Eigenschaft verweist (zum Beispiel &=DataSource.Numbers) – entweder horizontal über eine Zeile oder vertikal entlang einer Spalte. Obwohl dieses Verhalten in vielen Szenarien praktisch ist, gibt es Situationen, in denen Sie das gesamte Array lieber in einer einzelnen Zelle rendern möchten, wobei die Elemente zusammengefügt und durch ein Trennzeichen Ihrer Wahl getrennt werden. Die Attribute ArrayAsSingle und ExtraDelimiter, die zusammen innerhalb eines Smart-Marker-Tags verwendet werden, erfüllen genau diese Anforderung. Sie ermöglichen es Ihnen, Berichtslayouts kompakt und vorhersagbar zu halten und gleichzeitig nativ mit Array-Datenquellen zu arbeiten.

Why This Feature Is Needed

Default Array Spreading Behavior

Wenn ein Smart Marker auf eine Array-Eigenschaft verweist, expandiert Aspose.Cells das Array standardmäßig über mehrere Zellen. Beispielsweise wird ein Marker wie &=Product.Tags bei einem string[] mit vier Werten jeden Wert in eine eigene Zelle platzieren, wodurch andere Vorlageninhalte nach außen verschoben und sorgfältig gestaltete Berichtslayouts möglicherweise beschädigt werden.

Use Case Limitations

Es gibt viele praktische Szenarien, in denen das Standard-Spreizungsverhalten unerwünscht ist:

  • Zusammenfassungsberichte, die ein kompaktes Layout mit einer Zeile pro Datensatz benötigen.
  • Tag-, Label- oder Stichwortlisten, die als kommagetrennte oder pipe-getrennte Werte innerhalb einer einzelnen Zelle angezeigt werden sollen.
  • Filter-Chips oder Statusindikatoren, die mehrere Werte zur besseren Lesbarkeit an einem Ort gruppieren.
  • Nachgelagerte Pipelines (CSV-Export, PDF-Rendering, Serienbrief), die einen einzigen konsolidierten Wert pro Zelle erwarten, anstatt einen expandierten Bereich.
  • Plattformübergreifende Kompatibilität, bei der einige Konsumenten Arrays, die sich über mehrere Zellen erstrecken, nicht tolerieren können.

The Gap It Fills

Ohne einen eingebauten Mechanismus wären Entwickler gezwungen, Daten in C# oder VB.NET vorzuverarbeiten – Arrays zu getrennten Zeichenketten zusammenzufügen, bevor sie sie an den Workbook-Designer binden. Dies dupliziert Logik, verkompliziert Datenmodelle und erhöht die Fehlerwahrscheinlichkeit. Die Attribute ArrayAsSingle und ExtraDelimiter beseitigen diese Umgehungslösung, indem sie die Formatierung deklarativ innerhalb des Smart Markers selbst behandeln.

Feature Benefits

Die Verwendung der Attribute ArrayAsSingle und ExtraDelimiter in Ihren Smart Markers bietet mehrere Vorteile:

  • Einzelzellen-Containment: Alle Array-Elemente werden in genau eine Zelle gerendert, wodurch Layouts kompakt und vorhersagbar bleiben.
  • Benutzerdefinierte Trennzeichensteuerung: Geben Sie eine beliebige Trennzeichenfolge an – Komma, Semikolon, Bindestrich, Pipe, Zeilenumbruch oder beliebiger benutzerdefinierter Text.
  • Vorlagengesteuerte Formatierung: Es ist kein zusätzlicher Code zur Vorverarbeitung der Daten erforderlich; Formatierungsregeln leben innerhalb des Smart-Marker-Tags.
  • Sauberere Berichte: Array-Daten verschieben benachbarte Vorlageninhalte nicht mehr in andere Zeilen oder Spalten.
  • Vielseitige Datentypen: Funktioniert mit Zeichenketten, Zahlen, Datumswerten und jedem anderen Datentyp, der mit einem Trennzeichen zusammengefügt werden kann.
  • Abwärtskompatibilität: Wenn die Attribute weggelassen werden, bleibt das ursprüngliche Spreizungsverhalten erhalten, sodass bestehende Vorlagen unverändert weiter funktionieren.

How to Use This Feature

Smart Marker Syntax

Die Attribute ArrayAsSingle und ExtraDelimiter werden als Schlüssel-Wert-Paare innerhalb der Klammern eines Standard-Smart-Markers übergeben. Die allgemeine Syntax lautet:

&=DataSource.ArrayProperty(arrayasSingle=true, extraDelimiter=", ")

Der Marker besteht aus den folgenden Teilen:

  • &=DataSource.ArrayProperty — der Standard-Smart-Marker, der auf die Array-Eigenschaft der gebundenen Datenquelle verweist.
  • arrayasSingle=true — weist die Engine an, das gesamte Array in eine einzelne Zelle zu rendern. Nur der Wert true löst das Einzelzellen-Verhalten aus.
  • extraDelimiter=", " — definiert das Trennzeichen, das zwischen Array-Elementen platziert wird. Der Wert ist ein Zeichenkettenliteral; er kann leer, ein einzelnes Zeichen oder eine mehrteilige Zeichenkette sein.