From 9d80c5913fe2bc47a6f84cfc3bdbe3290a48efe4 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Sun, 24 Mar 2024 13:50:20 +0100 Subject: [PATCH] DataTable: Add Subtitle --- Elwig/Helpers/Export/Ods.cs | 16 ++++++++++++---- Elwig/Models/Dtos/DataTable.cs | 1 + 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Elwig/Helpers/Export/Ods.cs b/Elwig/Helpers/Export/Ods.cs index fe957dc..0c7560a 100644 --- a/Elwig/Helpers/Export/Ods.cs +++ b/Elwig/Helpers/Export/Ods.cs @@ -20,7 +20,7 @@ namespace Elwig.Helpers.Export { FileName = filename; File.Delete(filename); ZipArchive = ZipFile.Open(FileName, ZipArchiveMode.Create); - _tables = new(); + _tables = []; } public void Dispose() { @@ -101,7 +101,12 @@ namespace Elwig.Helpers.Export { - + + + + + + @@ -198,6 +203,9 @@ namespace Elwig.Helpers.Export { FormatCell(table.FullName, colSpan: totalSpan, style: "header") + $" \r\n" + $" \r\n" + + FormatCell(table.Subtitle, colSpan: totalSpan, style: "subheader") + + $" \r\n" + + $" \r\n" + $" \r\n" + $" \r\n" + $" \r\n"); @@ -251,8 +259,8 @@ namespace Elwig.Helpers.Export { protected static string FormatCell(object? data, int rowSpan = 1, int colSpan = 1, string? style = "default", bool isCovered = false, string?[]? units = null) { if (data?.GetType().IsValueType == true && data.GetType().Name.StartsWith("ValueTuple")) - return string.Join("", data.GetType().GetFields().Zip(units ?? Array.Empty()) - .Select(p => FormatCell(p.First.GetValue(data), rowSpan, colSpan, style, isCovered, new[] { p.Second })) + return string.Join("", data.GetType().GetFields().Zip(units ?? []) + .Select(p => FormatCell(p.First.GetValue(data), rowSpan, colSpan, style, isCovered, [p.Second])) ); var add = (style != null ? $" table:style-name=\"{style}\"" : "") + (rowSpan > 1 || colSpan > 1 ? $" table:number-rows-spanned=\"{rowSpan}\" table:number-columns-spanned=\"{colSpan}\"" : ""); diff --git a/Elwig/Models/Dtos/DataTable.cs b/Elwig/Models/Dtos/DataTable.cs index 9637cfe..62ea339 100644 --- a/Elwig/Models/Dtos/DataTable.cs +++ b/Elwig/Models/Dtos/DataTable.cs @@ -8,6 +8,7 @@ namespace Elwig.Models.Dtos { public string Name { get; set; } public string FullName { get; set; } + public string? Subtitle { get; set; } public IEnumerable Rows { get; private set; } public int RowNum => Rows.Count(); public int ColNum => ColumnNames.Count();