Чтение xls (Или хотя бы перекодирование. Чем можно?)

Модератор: Модераторы разделов

Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Чтение xls

Сообщение gluk47 »

Можно ли нормальными средствами прочитать xls-файлы? Это файлы, созданные в Micro$oft Excel 97­-2003, их формат открыт и лежит в виде причудливого творчества на сайте производителя длиной страниц в сто.

Исходные данные поставляются именно в таком виде, а написать хотелось бы, по возможности, кроссплатформенную программу. В принципе-то для чтения файлов можно использовать C#, но жалко ради этой программы держать винду, а C# без неё никуда… Предпочтительнее что-то вроде QtD ну или хотя бы QT&C++.

Файлы размером 60 и 160 МиБ; для воспринимаемости человеком внутри сделаны выпадающие списки-фильтры и пара графиков, то есть было бы замечательно, если бы они не приводили к сегфолту.
Гугль в растерянности, может, кто-нибудь из уважаемых гуру знает, чем можно открыть хотя бы на чтение или хотя бы преобразовать во что-то этот открытый формат закрытой программы?
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Чтение xls

Сообщение diesel »

когда-то игрался с перловым: http://search.cpan.org/dist/Spreadsheet-Read/Read.pm, если поискать то на форуме где-то есть примеры для перла, и еще для чего-то... но если xls файл таки да 60Гигов ...это круто

есть еще xls2csv Витуса Вагнера: http://www.wagner.pp.ru/~vitus/software/catdoc/, может исходники могут помочь. Она на С.
Спасибо сказали:
Аватара пользователя
annndrey
Сообщения: 15
ОС: debian lenny

Re: Чтение xls

Сообщение annndrey »

экселевские файлы размером 160 гиг???

если не секрет, то что в них спрятано? или хотя бы структуру..
я считывал экселевские файлы питоном, там есть несколько модулей как раз для этих целей.
или, как вариант - xls -> csv и далее все что угодно..
Ы!
Спасибо сказали:
Аватара пользователя
gluk47
Сообщения: 297
Статус: Любитель гвоздей и микроскопов
ОС: Kubuntu 17.10

Re: Чтение xls

Сообщение gluk47 »

Спасибо, посмотрю…

diesel писал(а):
22.01.2010 01:53
… но если xls файл таки да 60Гигов ...это круто

Да-да, я перечитал сообщение и тоже впечатлился) Исправил :blush:
[gluk47@gluk47-desktop ~]$ ензу куищще
куищще is aliased to `reboot'
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: Чтение xls

Сообщение Doublespace »

А экспортировать их в csv нельзя? Просто,скажем, в open office наблюдал всегда большие проблемы при работе с экселевскими файлами мегабайт в 10 и больше.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Чтение xls

Сообщение rm_ »

Вот что нашлось:
pyExcelerator is a Python module that can generate Excel 97/2000/XP/2003
spreadsheet files. It can also extract data from these files. It supports
Unicode in Excel files, and can use a variety of formatting features and
printing options. It can dump Excel and OLE2 compound files. Included are
simple conversion tools py_xls2html, py_xls2csv and py_xls2txt.

Только я подозреваю, что сиё питоновское изделие на файле в 160 мегов тоже загнётся. :)
Спасибо сказали:
Аватара пользователя
begin2009
Сообщения: 349
Статус: Ламер со стажем
ОС: без глюков

Re: Чтение xls

Сообщение begin2009 »

Несколько лет назад попалась xls из госстатистики и захотелось их данные в свою базу подгрузить. Сделано было так. Этот файл вызвал Excel, а потом сохранил как html. Там конечно были и данные о веществах которые используют статистики, но это можно игнорировать, а вытянуть интерисующие сведения.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
Спасибо сказали:
Аватара пользователя
annndrey
Сообщения: 15
ОС: debian lenny

Re: Чтение xls

Сообщение annndrey »

ну можно же попробовать, авось не загнется :))
написать простой питоновский скрипт, который
считывает строку из экселя пишет в базу, считывает - пишет.
и так пока все не перепишет :))
Ы!
Спасибо сказали: