Lectura de datos numéricos de Excel como texto usando xlrd en Python
Estoy tratando de leer en un archivo de Excel usando xlrd, y me pregunto si hay una manera de ignorar el formato de celda utilizado en el archivo de Excel, y simplemente importar todos los datos como texto.
Aquí está el código que estoy usando hasta ahora:
import xlrd
xls_file = 'xltest.xls'
xls_workbook = xlrd.open_workbook(xls_file)
xls_sheet = xls_workbook.sheet_by_index(0)
raw_data = [['']*xls_sheet.ncols for _ in range(xls_sheet.nrows)]
raw_str = ''
feild_delim = ','
text_delim = '"'
for rnum in range(xls_sheet.nrows):
for cnum in range(xls_sheet.ncols):
raw_data[rnum][cnum] = str(xls_sheet.cell(rnum,cnum).value)
for rnum in range(len(raw_data)):
for cnum in range(len(raw_data[rnum])):
if (cnum == len(raw_data[rnum]) - 1):
feild_delim = '\n'
else:
feild_delim = ','
raw_str += text_delim + raw_data[rnum][cnum] + text_delim + feild_delim
final_csv = open('FINAL.csv', 'w')
final_csv.write(raw_str)
final_csv.close()
Este código es funcional, pero hay ciertos campos, como un código postal, que se importan como números, por lo que tienen el sufijo decimal cero. Por ejemplo, si hay un código postal de '79854' en el archivo de Excel, se importará como '79854.0'.
He intentado encontrar una solución en estoxlrd spec, pero no tuvo éxito.