Я пытаюсь читать в файле Excel с помощью xlrd, и мне интересно, есть ли способ игнорировать форматирование ячейки, используемую в файле Excel, и просто импортировать все данные как текст?Чтение числовых данных Excel в виде текста с использованием xlrd в Python
Вот код, я использую для далеко:
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()
Этого код является функциональным, но есть определенные поля, такие как почтовый индекс, которые импортируются как числа, так что они имеют десятичный ноль суффикс. Например, есть ли почтовый индекс «79854» в файле Excel, он будет импортирован как «79854.0».
Я попытался найти решение в этом xlrd spec, но не получилось.
xlrd сообщает, что он находит. Единственными «целыми значениями» в Excel являются float с нулевой долей. Excel и его пользователи просто не имеют понятия целого в качестве отдельного типа. Целые числа, которые содержатся в некоторых записях ячейки RK в файле XLS, являются просто артефактами сериализации, а xlrd правильно преобразует их в float. –