summaryrefslogtreecommitdiff
path: root/contrib/non-profit-audit-reports/csv2ods.py
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/non-profit-audit-reports/csv2ods.py')
-rwxr-xr-xcontrib/non-profit-audit-reports/csv2ods.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/contrib/non-profit-audit-reports/csv2ods.py b/contrib/non-profit-audit-reports/csv2ods.py
index f6150158..2b3024d4 100755
--- a/contrib/non-profit-audit-reports/csv2ods.py
+++ b/contrib/non-profit-audit-reports/csv2ods.py
@@ -24,11 +24,14 @@ import sys, os, os.path, optparse
import csv
import ooolib2
+file_fields = [ 'Receipt', 'Invoice', 'Statement', 'Contract', 'PurchaseOrder',
+ 'Approval', 'Check', 'IncomeDistributionAnalysis', 'CurrencyRate' ]
+
def err(msg):
print 'error: %s' % msg
sys.exit(1)
-def csv2ods(csvname, odsname, verbose = False):
+def csv2ods(csvname, odsname, encoding='', verbose = False):
if verbose:
print 'converting from %s to %s' % (csvname, odsname)
doc = ooolib2.Calc()
@@ -53,10 +56,12 @@ def csv2ods(csvname, odsname, verbose = False):
if len(fields) > 0:
for col in range(len(fields)):
val = fields[col]
+ if encoding != '':
+ val = unicode(val, 'utf8')
if len(val) > 0 and val[0] == '$':
doc.set_cell_value(col + 1, row, 'currency', val[1:])
else:
- if ( (col == 5) and (val != 'Receipt') and len(val) > 0) or ( (col == 6) and (val != 'Invoice') and len(val) > 0):
+ if ((col >= 5) and (not val in file_fields) and len(val) > 0):
linkrel = '../' + val # ../ means remove the name of the *.ods
linkname = os.path.basename(val) # name is just the last component
doc.set_cell_value(col + 1, row, 'link', (linkrel, linkname))
@@ -89,6 +94,8 @@ def main():
help='csv file to process')
parser.add_option('-o', '--ods', action='store',
help='ods output filename')
+ parser.add_option('-e', '--encoding', action='store',
+ help='unicode character encoding type')
(options, args) = parser.parse_args()
if len(args) != 0:
parser.error("not expecting extra args")
@@ -101,7 +108,8 @@ def main():
print '%s: verbose mode on' % program
print 'csv:', options.csv
print 'ods:', options.ods
- csv2ods(options.csv, options.ods, options.verbose)
+ print 'ods:', options.encoding
+ csv2ods(options.csv, options.ods, options.verbose, options.encoding)
if __name__ == '__main__':
main()