diff --git a/hledger-lib/Hledger/Write/Ods.hs b/hledger-lib/Hledger/Write/Ods.hs
index 9a8e803d5..4766a7fb4 100644
--- a/hledger-lib/Hledger/Write/Ods.hs
+++ b/hledger-lib/Hledger/Write/Ods.hs
@@ -69,6 +69,9 @@ printFods encoding tables =
" -" :
" " :
" " :
+ " " :
+ " " :
+ " " :
customStyles ++
"" :
[]
@@ -139,6 +142,7 @@ dataStyleFromType :: Type -> DataStyle
dataStyleFromType typ =
case typ of
TypeString -> DataString
+ TypeInteger -> DataInteger
TypeDate -> DataDate
TypeAmount amt -> DataAmount (acommodity amt) (asprecision $ astyle amt)
TypeMixedAmount -> DataMixedAmount
@@ -234,6 +238,7 @@ borderStyle border =
data DataStyle =
DataString
+ | DataInteger
| DataDate
| DataAmount CommoditySymbol AmountPrecision
| DataMixedAmount
@@ -299,6 +304,10 @@ formatCell cell =
valueType =
case cellType cell of
+ TypeInteger ->
+ printf
+ "office:value-type='float' office:value='%s'"
+ (cellContent cell)
TypeAmount amt ->
printf
"office:value-type='float' office:value='%s'"
@@ -343,6 +352,8 @@ styleNames cstyle border dataStyle =
case dataStyle of
DataDate ->
(printf "%s-%s-date" cstyleName bordName, Just "iso-date")
+ DataInteger ->
+ (printf "%s-%s-integer" cstyleName bordName, Just "integer")
DataAmount comm prec ->
let name = numberStyleName (comm, prec) in
(printf "%s-%s-%s" cstyleName bordName name,
diff --git a/hledger-lib/Hledger/Write/Spreadsheet.hs b/hledger-lib/Hledger/Write/Spreadsheet.hs
index bf4b1d95b..fe354b4c9 100644
--- a/hledger-lib/Hledger/Write/Spreadsheet.hs
+++ b/hledger-lib/Hledger/Write/Spreadsheet.hs
@@ -40,6 +40,7 @@ import Prelude hiding (span)
data Type =
TypeString
+ | TypeInteger
| TypeAmount !Amount
| TypeMixedAmount
| TypeDate
diff --git a/hledger/Hledger/Cli/Commands/Register.hs b/hledger/Hledger/Cli/Commands/Register.hs
index 3e94bcd8d..f407862b2 100644
--- a/hledger/Hledger/Cli/Commands/Register.hs
+++ b/hledger/Hledger/Cli/Commands/Register.hs
@@ -127,7 +127,7 @@ postingsReportItemAsRecord ::
(Spr.Lines border) =>
AmountFormat -> PostingsReportItem -> [Spr.Cell border T.Text]
postingsReportItemAsRecord fmt (_, _, _, p, b) =
- [cell idx,
+ [(cell idx) {Spr.cellType = Spr.TypeInteger},
(cell date) {Spr.cellType = Spr.TypeDate},
cell code, cell desc, cell acct,
amountCell (pamount p),