将.xlsx转换为.csv时的邮政编码

时间:2015-08-14 16:13:48

标签: python csv xlsx xlrd import-from-excel

Excel将邮政编码存储为浮点数。使用xlsx.py时会发生以下情况

zip [1] = 01234> 1234.0(不是)

zip [2] = 12345-6789> 12345-6789(完美)

import xlrd
import csv
def csv_from_excel():
    wb = xlrd.open_workbook('mydoc.xlsx')
    sh = wb.sheet_by_name('Sheet1')
    mycsv = open('output.csv', 'wb')
    wr = csv.writer(mycsv)

    for rownum in xrange(sh.nrows):
        cell = sh.cell(rownum,0)
        wr.writerow([unicode(val).encode('utf8') for val in sh.row_values(rownum)])

    mycsv.close()

如何保留前导零,删除附加的.0并在扩展邮政编码中注明“ - ”?转换为整数将删除前导零,并且使用csv =“QUOTE-ALL”只会使添加的字符进一步复杂化。

1 个答案:

答案 0 :(得分:0)

要将123转换为" 00123",您可以使用" {:0> 5}" .format(zipcode) 这将使数据在5个字符的长字符串内右对齐,并使用" 0"用于填充。