Я просто пробовал csvkit для преобразования Excel в csv. Тем не менее, он не учитывает форматирование по датам и времени и производит разные результаты из собственного save-as-csv Excel. Например, это строка таблицы:Предотвращение csvkit от изменения дат/времени?
И это то, что Excel Сохранит-а производит:
22/04/1959,Bar,F,01:32.00,01:23.00,00:59.00,00:47.23
дата не имеет никакого специального форматирования, и время в формате [mm].ss.00
, Тем не менее, это версия in2csv
«S из CSV:
1959-04-22,Bar,F,0.00106481481481,0.000960648148148,0.00068287037037,0.000546643518519
, который, конечно, имеет никакой пользы вообще. Есть идеи? Кажется, для этого не существует параметров командной строки - no-inference
не помогает. Благодарю.
EDIT
Оба csvkit
анс xlrd
, кажется, учитывают форматирование, но они не умны об этом. Дата в 21/02/1066 передается в текстовой строке «21/02/1066» в обоих случаях, но дата «22/04/1959» превращается в «21662,0» на xlrd
и 1959-04-22
на csvkit
. Оба они просто отказываются от небольших прошедших времен и проходят через поплавковое представление. Это нормально, если вы знаете, что ячейка должна содержать истекшее время, потому что вы можете просто умножить на 24*60*60
, чтобы получить правильный ответ.
Не думаю, что xlrd
будет очень полезен здесь, так как его функции даты имеют только секунды, а не сантименты.
EDIT 2
Узнал что-то интересное. Я начал с базовой таблицы, содержащей время. В одном из них я форматировал время как [m:]ss.00
, а в другом я отформатировал их как [mm:]ss.00
. Затем я сохранил их как .xls
и .xlsx
, давая в общей сложности 4 таблицы. Excel мог преобразовать все 4 в csv, и все время текст в csv появился как первоначально написанный (то есть 0:21.0
, например, для 0m 21.0s).
in2csv
не может обрабатывать две версии .xls
; на этот раз отображается как 00:00:21
. Он также не может обрабатывать версию [m:]ss.00
версии .xlsx
- преобразование дает ошибку «индекс за пределами диапазона». Единственная из четырех таблиц, которые может обрабатывать in2csv
, - это .xlsx
с [mm:]ss.00
форматированием.
Также рассматривая ту же проблему. Согласно https://github.com/wireservice/csvkit/pull/779, это должно быть исправлено сейчас, но я все еще не могу использовать параметр - format-date в версии, предоставляемой через pip. Я считаю, что вы можете решить эту проблему, установив прямо из git. – Cninroh
Интересно - я постараюсь дать ему поехать в течение следующих нескольких дней. – EML