Russian Qt Forum

Qt => ActiveX => Тема начата: mokynis от Май 22, 2012, 16:05



Название: открыть .xlsx в Office2000
Отправлено: mokynis от Май 22, 2012, 16:05
ситуация следующая: на предприятие приходят файлы Excel самых разных версий. Надо их содержимое записать в уже имеющуюся базу данных. На машинах стоит (кажется, у всех) Office 2000, который файлы .xlsx открывает с помощью Compatibility Pack for the 2007 Office system. Соответственно, программа с .xls файлами справляется без проблем, а .xlsx открывать отказывается. При попытке открыть просто аварийно завершается. Идолов Office с его взаимонесовместимостью! Подскажите, что можно сделать и можно ли сделать что-то вообще? А то там 3 человека вручную все это забивают.


Название: Re: открыть .xlsx в Office2000
Отправлено: Bepec от Май 22, 2012, 19:07
Эммм... Простенький скрипт и наблюдать за бегущими строчечками?


Название: Re: открыть .xlsx в Office2000
Отправлено: mokynis от Май 23, 2012, 08:46
Цитировать
Простенький скрипт и наблюдать за бегущими строчечками?
ничччего не понял. Можно чуть поподробнее? Что должен делать скрипт и какие строчки должны бегать?


Название: Re: открыть .xlsx в Office2000
Отправлено: Bepec от Май 23, 2012, 09:05
Вы дали слишком мало информации. Какого формата файл-источник, какого формата файл-получатель. Как именно необходимо внести данные и прочая-прочая-прочая.

Всё что я могу сказать - можно написать простенький скриптик, переносящий из xsls в xls, а далее, помоему, проблема исчезнет.


Название: Re: открыть .xlsx в Office2000
Отправлено: alex312 от Май 23, 2012, 12:58
Подскажите, что можно сделать и можно ли сделать что-то вообще?
Посмотреть в сторону LibreOffice/OpenOffice.


Название: Re: открыть .xlsx в Office2000
Отправлено: Bepec от Май 23, 2012, 14:15
Много вариантов решения. Цель неясна. Неясна архитектура. В общем ждёмс ТС.


Название: Re: открыть .xlsx в Office2000
Отправлено: mokynis от Май 23, 2012, 14:24
Цитировать
Какого формата файл-источник, какого формата файл-получатель
я ж написал:
Цитировать
На машинах стоит (кажется, у всех) Office 2000
,
Цитировать
файлы .xlsx открывает с помощью Compatibility Pack for the 2007 Office system
файлы формата .xls я без проблем открываю, выбираю из них нужную информацию и вписываю их в специально для этого разработанный шаблон (в саму базу меня главбух не пускает, так что договорился с тем, кто обслуживает ее-базу я имею в виду, чтобы он сделал загрузку нужной информации из Excel файла-шаблона). Грубо говоря, 1-я колонка-наименование, 2-я-количество, 3-я цена и т. д. В общем, сама процедура не сложная, все дело в том, что файлы-источники могут быть и не 2000-го Office'a. Сам Excel их открывает (через Compatibility Pack), а QAxObject пытается сделать это напрямую через установленный Excel и в результате программа падает. Вот, собственно, и все подробности. А насчет OpenOffice надо подумать. Спасибо за подсказку. Может еще ссылочку кинете, где описывается как с ним работать? А то я как-то пробовал-ничего не вышло.


Название: Re: открыть .xlsx в Office2000
Отправлено: Bepec от Май 23, 2012, 14:37
Я имел в виду формат хранения данных. Вдруг у вас там аналитические диаграммы под 100 мегабайтов?
А если текстовые таблицы, то да - просто использовать какую нить библиотечку и выдернуть.


Название: Re: открыть .xlsx в Office2000
Отправлено: mokynis от Май 23, 2012, 14:57
нет, все-таки мы явно на разных языках говорим:
Цитировать
просто использовать какую нить библиотечку и выдернуть
по-прежнему ничччего не понимаю. Какую библиотеку? Откуда что выдернуть? Извиняюсь, если туплю


Название: Re: открыть .xlsx в Office2000
Отправлено: Bepec от Май 23, 2012, 15:10
У вас проблема - формат не считывается.

Решение, варианты:
1) перегнать сторонней программой/библиотечкой данные из xlsx в xls и не парится.
2) скриптовыми языками (вне программы) перенести данные из xlsx в xls.
3) самому написать парсер для xlsx и перегнать данные в базу(минуя xls, если это возможно)
4) вообще перегнать всё на скриптовый язык и =>

=> Усевшись за компьютер запустить скритовый файл. Далее в течении некого времени смотреть, как строчечки, циферки, столбики, таблички сами переносятся на нужные места в шаблоне, форматируются, сохраняются. (Вот это я и называл бегающими строчечками)

PS вообще это забавно смотреть, как ексцель сам, без вашей помощи, выполняет вашу работу :D Только главное начальству не попасться - может произойти непонимание :D


Название: Re: открыть .xlsx в Office2000
Отправлено: mokynis от Май 23, 2012, 15:27
спасибо огромное, теперь понял!


Название: Re: открыть .xlsx в Office2000
Отправлено: alex312 от Май 23, 2012, 15:51
А насчет OpenOffice надо подумать. Спасибо за подсказку. Может еще ссылочку кинете, где описывается как с ним работать? А то я как-то пробовал-ничего не вышло.
http://api.libreoffice.org/