diff --git a/xlsx_conv.py b/xlsx_conv.py index 3f9b4b509f3292ff8c77b71ad35d465125c410ef..6d2a0e12864c914abf8b4496a47b7602ee46a720 100644 --- a/xlsx_conv.py +++ b/xlsx_conv.py @@ -4,10 +4,22 @@ import csv, io def xlsx2csv(xlsxPath, sheetIndex, outputFd): wb = xlrd.open_workbook(xlsxPath) sh = wb.sheet_by_index(sheetIndex) - wr = csv.writer(outputFd, quoting=csv.QUOTE_NONNUMERIC) + wr = csv.writer(outputFd, quoting=csv.QUOTE_MINIMAL) + + def fuck_number_ele(ele): + if type(ele) is float: + s = str(ele) + if 'e' in s.lower(): + raise RuntimeError('Fuck python Float2Str: THIS IS A BUG. PLEASE REPORT.') + if s.endswith('.0'): + return s[:-2] + else: + return s + else: + return ele for rownum in range(sh.nrows): - wr.writerow(sh.row_values(rownum)) + wr.writerow([fuck_number_ele(ele) for ele in sh.row_values(rownum)]) def read_as_csv(fname): is_xlsx = lambda fname: fname.endswith('.xlsm') or fname.endswith('.xlsx') or fname.endswith('.xls') or fname.endswith('.XLSM') or fname.endswith('.XLSX') or fname.endswith('.XLS')