Форматирование в Excel всегда чисто косметическое и является атрибутом, который хранится отдельно и независимо от значения ячейки.Значение и формат do not должны быть "синхронизированы".
Автор xlrd сделал выбор в всегда , просто предоставив вам значение, которое было сохраненоExcel.Не важно что.Вот и вся история со стороны xlrd.
Программа Excel (то есть приложение с графическим интерфейсом от Microsoft) более сложна.Если вы наберете что-то похожее на число, то Excel проверит существующий формат ячейки.Если формат ячейки - Текст, он будет хранить строку.В противном случае он будет сохранять число с плавающей запятой.
Если вы начнете с чистого листа в Excel, все ячейки будут иметь формат по умолчанию, который является общим.Важно отметить, что General - это не текст, поэтому, если вы введете 123
в ячейки A1, A2 и A3 на этом чистом листе, все они будут сохранены как плавающие.
Если вы затем вернетесь и отформатируете A1и A3 как Текст, Excel изменит формат этих ячеек на Текст.На этом этапе значения всех трех ячеек по-прежнему плавают.
Но если вы затем edit A3, Excel проверит формат ячейки и обнаружит, чтоэто текст, и, таким образом, сохраните строку.
Обратите внимание, что если значение для A3 является строкой, если вы затем вернетесь назад и отформатируете A3 как General, значение остается строкой, несмотря на то, что General - это не текст.
Так что любая забавная связь между значениями, типами и форматированием происходит из-за Excel и того, как вы вводите данные.xlrd просто верно читает то, что там есть.