Export-EulToExcel #
ÜBERSICHT #
Exportiert eine EULANDA-Tabelle als Excel-Datei (.xlsx).
SYNTAX #
Export-EulToExcel [-Conn] <__ComObject> [-Table] <string> [-Path] <string> [[-Columns] <string[]>]
[[-Where] <string>] [[-OrderBy] <string>] [[-Top] <int>] [-IncludeBreadcrumbs]
[[-BreadcrumbColumnName] <string>] [[-BreadcrumbSeparator] <string>] [[-SplitLanguages]
<string[]>] [[-SplitColumns] <string[]>] [-StripHtml] [[-WorksheetName] <string>] [-NoAutoSize]
[-NoAutoFilter] [-NoFreezeHeader] [-NoBoldHeader] [[-HeaderStyle] <string>] [-AsTable]
[[-TableStyle] <string>] [-PassThru] [<CommonParameters>]
BESCHREIBUNG #
Liest eine Tabelle (mit optionalen Filter-, Spalten- und Sortierungs-Angaben) und schreibt sie als Excel-Arbeitsmappe. Optional werden auch die zugeordneten Merkmale (Breadcrumbs) jedes Datensatzes als zusätzliche Spalte exportiert.
Datentypen werden anhand des SQL-Schemas auf passende Excel-Zellformate abgebildet:
- DateTime / Date / Timestamp → Datums-Zellformat (
yyyy-mm-dd hh:mm:ss) - Currency / Money / SmallMoney →
#,##0.00(Tausender + zwei Nachkomma) - Decimal / Numeric →
#,##0.<scale×0>(Skala kommt aus dem Schema) - Float / Double →
#,##0.00######(Tausender + bis zu 6 Nachkomma) - Integer / SmallInt / BigInt / TinyInt →
#,##0(Tausender) - VarChar / Char / NVarChar / NChar →
@(Text, schützt führende Nullen z.B. bei PLZ oder Konto-Nummern beim Öffnen in Excel) - alles andere → Default (keine Formatierung)
Erste Zeile enthält Spaltenüberschriften (Header). Default: Spaltenbreiten automatisch, AutoFilter, Header fett und fixiert. Über die -No*-Switches kann jedes dieser Defaults abgeschaltet werden. Optional zusätzlich: farbiger Header (-HeaderStyle) oder Excel-Tabelle (-AsTable).
Die Funktion nutzt das Modul ImportExcel. Caller-owns-Connection.
PARAMETER #
-Conn #
Type: __ComObject
Offene ADODB-Verbindung zur EULANDA-Datenbank. Wird NICHT geschlossen.
-Table #
Type: string
Tabellenname (z.B. ‘Artikel’, ‘Adresse’, ‘RechnungPos’).
-Path #
Type: string
Zielpfad der zu erzeugenden .xlsx-Datei. Existierende Datei wird überschrieben.
-Columns #
Type: string[]
Spaltenauswahl. Default: alle Spalten. Reihenfolge bleibt erhalten.
-Where #
Type: string
Optionale WHERE-Klausel OHNE Schlüsselwort.
-OrderBy #
Type: string
Optionale ORDER BY-Klausel OHNE Schlüsselwort.
-Top #
Type: int
Default: 0
Maximale Zeilenanzahl. 0 = unbegrenzt (Default).
-IncludeBreadcrumbs #
Type: switch
Wenn gesetzt, wird zusätzlich eine Spalte mit den zugeordneten Merkmal-Pfaden des Datensatzes exportiert (über Get-Breadcrumbs). Voraussetzung: Tabelle ist Teil des Merkmalbaums (Artikel, Adresse, Rechnung, …) und hat eine PK-Spalte ‘id’. Die Spalte heißt standardmäßig _Breadcrumbs, mehrere Pfade werden durch ; getrennt.
Hinweis: pro Datensatz ein SQL-Roundtrip. Bei großen Datenmengen (>1000 Zeilen) merklich langsamer.
-BreadcrumbColumnName #
Type: string
Default: '_Breadcrumbs'
Spaltenname für die Breadcrumb-Spalte. Default: _Breadcrumbs.
-BreadcrumbSeparator #
Type: string
Default: '; '
Trenner zwischen Breadcrumb-Pfaden in der Excel-Zelle. Default: ; .
-SplitLanguages #
Type: string[]
Optional: Iso-Codes (z.B. ‘de’,’en’). Aktiviert die Sprach-Splittung für mehrsprachige Felder im EULANDA-Tag-Format [DE]...[EN].... Pro gesplitteter Quellspalte werden im Excel <Spalte>_<iso> und <Spalte>_other erzeugt; die Original-Spalte entfällt. Setzt -SplitColumns voraus.
-SplitColumns #
Type: string[]
Spaltennamen, deren Inhalt nach -SplitLanguages aufgeteilt werden soll (z.B. ‘Langtext’). Nur Spalten, die auch in -Columns/im Schema sind, werden berücksichtigt.
-StripHtml #
Type: switch
Wenn gesetzt: HTML-Tags werden aus den gesplitteten Sprach-Texten entfernt (via Remove-HtmlTags). NUR für reine Berichte sinnvoll – der Roundtrip Import schreibt dann Plain-Text in die DB zurück, HTML-Markup geht verloren.
-WorksheetName #
Type: string
Name des Excel-Tabellenblatts. Default: Tabellenname.
-NoAutoSize #
Type: switch
Spaltenbreiten nicht automatisch anpassen (schneller bei vielen Spalten).
-NoAutoFilter #
Type: switch
Kein AutoFilter (Filter-Pfeile) im Header. Default: AutoFilter ein.
-NoFreezeHeader #
Type: switch
Header-Zeile nicht fixieren. Default: erste Zeile bleibt beim Scrollen sichtbar.
-NoBoldHeader #
Type: switch
Header nicht fett. Default: erste Zeile ist fett.
-HeaderStyle #
Type: string
Default: 'None'
Optional: Farbschema für die Header-Zeile (Hintergrundfarbe + weiße Schrift). Werte: None (Default, ohne Farbe), Default (Blau-Akzent), Blue, Gray, Green. Wirkt zusätzlich zu BoldHeader.
-AsTable #
Type: switch
Wenn gesetzt: der ausgegebene Bereich wird als echte Excel-Tabelle formatiert (mit -TableStyle). Bringt Zebrastreifen, AutoFilter und sortierbare Header in einem Schritt. Achtung: Import-EulFromExcel liest Tabellen anders – beim Roundtrip ist AsTable daher mit Vorsicht zu nutzen.
-TableStyle #
Type: string
Default: 'Medium2'
Excel-Tabellenstil, nur in Verbindung mit -AsTable. Default: Medium2. Weitere gängige Werte: Medium9, Light9, Dark1. Siehe ImportExcel-Doku für die volle Liste.
-PassThru #
Type: switch
Liefert ein PSCustomObject mit Pfad, Zeilen- und Spaltenanzahl zurück. Ohne PassThru gibt die Funktion nichts auf der Pipeline aus.
AUSGABEN #
Mit -PassThru: [PSCustomObject] mit Path, WorksheetName, RowCount,
ColumnCount.
BEISPIELE #
# Komplette Artikel-Tabelle als Excel
Export-EulToExcel -Conn $conn -Table 'Artikel' `
-Path 'C:\Temp\Artikel.xlsx'
# Nur aktive Artikel A* mit ausgewählten Spalten + Merkmalen
Export-EulToExcel -Conn $conn -Table 'Artikel' `
-Path 'C:\Temp\Artikel.xlsx' `
-Columns 'ID','ArtNummer','Kurztext1','Vk','Bestand' `
-Where "ArtNummer LIKE 'A%'" `
-OrderBy 'ArtNummer ASC' `
-IncludeBreadcrumbs `
-PassThru
HINWEISE #
Phase 4 Tier 2 – Excel-Pipeline (Export-Seite). Pendant: Import-EulFromExcel. Roundtrip: Export → bearbeiten in Excel → Import zurück; die Identity-Spalte (i.d.R. ID) sorgt für eindeutige Zuordnung beim Update.