Проблемы с форматированием чисел при чтении Excel с Xlrd - PullRequest
0 голосов
/ 07 мая 2019

Существует ли НЕДОКУМЕНТИРОВАННЫЙ способ чтения формата номера ячейки в xlrd?

Я читаю .xlsx файлов, и «formatting_info» не была и не будет реализована.

Мои данные выглядят так:

     Brand A| Brand B| Brand C|
row1|  45%  |  25%   |  25%   |
row2|  24%  |  8%    |  8%    |
row3|  0.5  |  4     |  0.14  |

Мне нужно прочитать данные так, как они отображаются в Excel.

Несколько ключевых моментов для рассмотрения:

  1. Мне не разрешено менять библиотеки, я должен использовать xlrd
  2. Типы данных не являются фиксированными, любыеданная строка может иметь проценты или целые числа
  3. Я использую xlsx файлы, поэтому formatting_info=True не вариант, так как он доступен только для xls, а не xlsx

Как бы я решил эту проблему?

1 Ответ

0 голосов
/ 07 мая 2019

В качестве первого предположения я бы сказал, что при проверке всей строки, если все значения 0 <= x <= 1, то, вероятно, это проценты.

Если вы хотите быть уверенным, вам придется проверить форматирование ячеек.

Во-первых, добавьте formatting_info=True к вашему xlrd.open_workbook(filepath), что позволяет вам сделать cell_format = book.xf_list[cell.xf_index].

Это формат XF , который исходит из структуры данных Excel, но с его помощью вы можете проверить book.format_map[cell_format.format_key], который имеет два атрибута: type и format_str, значения которых определены в документации (стр. 174, глава 5.49 «Формат»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...