Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-04-13

Пиастры же!

Странно, почему-то я думал, что уже отмечал у себя модуль xlrd — набор средств для чтения файлов XLS Python-ом. Оказывается — нет, не отметил. Ну и ладно, вот, пожалуйста: чтение и запись файлов ёкселя (XLS) на Python.

Что поделать, если офисные работники обожают пустографки? Ничего с этим не поделаешь, приходится оперировать тем, что дают. И вот, в процессе переработки выданного ёксельного файла выяснилось, что Python-ский скрипт выдает строку вида «12345.0» там, где должна была быть строка вида «12345».

Ну понятно, на каком-то этапе кто-то решает, что это число, причем с плавающей точкой, хотя колонка ёксельная вполне себе текстовая (да и таких как бы чисел там не более 10% среди строк, которые при всем желании за число не примешь). Разборки, отладки, то да сё... Короче — при считывании ячейки с таким числоподобным содержимым ёксель выставляет ей тип — число. Принудительно. Несмотря на то, что я вручную поменял формат ячейки на текстовый. Вот это, дети, и называется ИИ (искуственный интеллект) штоп он сдох. Добиться от ёкселя, чтобы он не превращал мне значения в число я смог только одним способом: добавил пробелов в ячейку (вроде как перед строкой, уже точно не помню).

Можно было бы фильтр в код скрипта добавить, да только это нельзя назвать универсальным решением, ибо заранее не скажешь, откуда берется точка с нулем — то ли из форматирования числа, то ли так и в самом деле в ячейке записано. На мой взгляд средство одно — только причесать исходный файл. И ладно бы, но мешает ИИ, штоп он сдох. А вы спрашиваете — почему я не люблю Микрософт. Да потому, что у них за правило заведено — считать пользователей дебилами а программы — умными. А получается как всегда.

Откуда пиастры? Да я ёкселю как тот попугй - «текст это, текст! Текст же!...».

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)