AddressExport.kt.xlsx). Handles column registration, access-controlled filtering, and multi-section merged header rows for mailing, business, postal, and private address blocks.AddressExport is an open class annotated with @Service("addressExport"), designed for extension by plugins. The marketing plugin's AddressCampaignValueExport extends it, overriding registerAdditionalCols(), configureSheet(), and handleAddressCampaign() to add campaign-specific fields.
registerCols)Registers ~40 columns in order:
registerAdditionalCols() — extensible point for campaign valuesregisterAddress(sheet, ""))registerAddress(sheet, "postal"))Size constants from ExcelUtils.Size control column widths: STANDARD (default), EMAIL, ZIPCODE, PHONENUMBER, EXTRA_LONG.
export())personalAddressMap).ExcelWorkbook with try-with-resources via .use { }.configureSheet(sheet, *params) for subclass customization.ExcelUtils.autoFill() for standard property mapping, manually fills mailing address cells and communication language, then invokes handleAddressCampaign() for campaign data.registerAdditionalCols(sheet) — Plugin hook for extra columns (e.g., campaign values).configureSheet(sheet, *params) — Post-setup customization.handleAddressCampaign(row, address, *params) — Per-row campaign data injection.addressCampaignSupported — Boolean flag, default false.sheetTitle — I18n key, default "address.addresses".868d6abb7 2025 -> 2026 83cbccb11 ExcelUtils AddressExport: stream.use (streams weren't closed before?) 78a38ca8f ExcelUtils.createFont and used by all font creating excel routines. 63081666f Source file headers: 2024-> 2025. 4c04cfd65 MAJOR-CHANGE! Migration of integer id's to Long id's b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. dce7927f4 deprecated Kotlin function decapitalize() replaced 5f7ef41b8 Copyright 2021 -> 2022 e1538819c Merlin: using now Autoclosure of ExcelWorkbook 91554ea83 New Merlin version.