From 2fcf7932213f82f9081298eb873d2bfbadcd1033 Mon Sep 17 00:00:00 2001 From: Henning Thielemann Date: Fri, 30 Aug 2024 12:14:49 +0200 Subject: [PATCH] cli: Commands.Cli.Balance.rawTableContent: helper function for extracting CSV from Spreadsheet cells --- hledger/Hledger/Cli/Commands/Balance.hs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Balance.hs b/hledger/Hledger/Cli/Commands/Balance.hs index 496ea8243..53455b480 100644 --- a/hledger/Hledger/Cli/Commands/Balance.hs +++ b/hledger/Hledger/Cli/Commands/Balance.hs @@ -440,7 +440,7 @@ totalRowHeadingBudgetCsv = "Total:" -- | Render a single-column balance report as CSV. balanceReportAsCsv :: ReportOpts -> BalanceReport -> CSV balanceReportAsCsv opts = - map (map Ods.cellContent) . balanceReportAsSpreadsheet opts + rawTableContent . balanceReportAsSpreadsheet opts -- | Render a single-column balance report as plain text. balanceReportAsText :: ReportOpts -> BalanceReport -> TB.Builder @@ -571,6 +571,10 @@ addTotalBorders = Ods.cellBorder = Ods.noBorder {Ods.borderTop = border}})) (Ods.DoubleLine : repeat Ods.NoLine) +rawTableContent :: [[Ods.Cell border text]] -> [[text]] +rawTableContent = map (map Ods.cellContent) + + -- | Render a single-column balance report as FODS. balanceReportAsSpreadsheet :: ReportOpts -> BalanceReport -> [[Ods.Cell Ods.NumLines Text]] @@ -651,7 +655,7 @@ multiBalanceReportAsCsv opts@ReportOpts{..} report = maybeTranspose allRows -- Helper for CSV (and HTML) rendering. multiBalanceReportAsCsvHelper :: Bool -> ReportOpts -> MultiBalanceReport -> (CSV, CSV) multiBalanceReportAsCsvHelper ishtml opts = - (map (map Ods.cellContent) *** map (map Ods.cellContent)) . + (rawTableContent *** rawTableContent) . multiBalanceReportAsSpreadsheetHelper ishtml opts -- Helper for CSV and ODS and HTML rendering. @@ -909,7 +913,7 @@ multiBalanceReportAsTable opts@ReportOpts{summary_only_, average_, row_total_, b multiBalanceRowAsTextBuilders :: AmountFormat -> ReportOpts -> [DateSpan] -> PeriodicReportRow a MixedAmount -> [[WideBuilder]] multiBalanceRowAsTextBuilders bopts ropts colspans row = - map (map Ods.cellContent) $ + rawTableContent $ multiBalanceRowAsCellBuilders bopts ropts colspans row multiBalanceRowAsCellBuilders :: @@ -1218,7 +1222,7 @@ budgetReportAsTable ReportOpts{..} (PeriodicReport spans items totrow) = -- but includes alternating actual and budget amount columns. budgetReportAsCsv :: ReportOpts -> BudgetReport -> [[Text]] budgetReportAsCsv ropts report - = map (map Ods.cellContent) $ + = rawTableContent $ budgetReportAsSpreadsheet ropts report budgetReportAsSpreadsheet ::