2

Я написал скрипт на python, который использует пакеты CSV и xlrd для преобразования двоичного файла Excel .xlsx в файл .txt с разделителями табуляции. К сожалению, каждая ячейка преобразуется в строку (что понятно), а каждое целое число преобразуется в число с плавающей точкой, представленное в виде строки. Например:

Ячейка в Excel имеет целое число 5.

Это будет выводиться из моего скрипта как «5.0».

Учитывая нисходящие процессы, важно поддерживать согласованность типов между исходным файлом excel и преобразованным файлом .txt. Расшифровать типы данных после преобразования довольно сложно, потому что невозможно определить, была ли цифра изначально целочисленной или с плавающей запятой, не глядя на исходный файл.

Мой главный вопрос заключается в следующем:

  1. Сохраняет ли Excel все числовые значения как плавающие автоматически?

  2. Если так, есть ли способ изменить настройки, чтобы учесть целые числа?

Спасибо.

1 ответ1

1

Excel использует только несколько типов данных в листах. Я цитирую:

типы всегда поступают в вашу функцию как один из следующих типов: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing или xltypeNil

Итак, вы можете видеть, что ожидание целых чисел не соответствует концепции. xltypeNum охватывает все числа (включая их эквиваленты, такие как значения даты / времени), а в VBA он отображается как Double.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .