Форум: "Прочее";
Текущий архив: 2010.10.10;
Скачать: [xml.tar.bz2];
ВнизЕсть ли такое? Найти похожие ветки
← →
ixen (2010-07-13 12:06) [0]Во многих организациях пользуются прикладными программами использующими вывод данных в MS Excel. Но вот если организация решила перейти на OpenOffice? Программа не умеет с ним работать. Доработать программу для выгрузки в OO Calc нет возможности. Ну дык вот... у меня возникла такая мысль... может быть есть такая служба которая висит в памяти и ловит обращения к MS Office и переводит команды понятные OpenOffice. Т.е. получается некий посредник между прогой и OO Calc. Есть ли токое? Если нет, то реально ли такое осуществить?
← →
Двенадцать © (2010-07-13 12:17) [1]почему бы нет
зарегистрироваться как excel и получать команды, перенаправлять в OO
тока мутно это дело
> Доработать программу для выгрузки в OO Calc нет возможности
почему?
тут где-то в статьях есть как начать
← →
Дмитрий С © (2010-07-13 12:18) [2]OO Calc поддерживает COM ?
← →
ixen (2010-07-13 12:23) [3]>
>
> [2] Дмитрий С © (13.07.10 12:18)
> OO Calc поддерживает COM ?
поддерживает
← →
ixen (2010-07-13 12:24) [4]но мне кажется для реализации этой затеи все равно придется использовать мелкомягкие библиотеки от офиса... а это уже нельзя...
← →
Дмитрий С © (2010-07-13 12:33) [5]можно враппер сделать. с виду ексель, а на самом деле все переадресует ОО. я думаю такое уже есть, почему то мне так кажется.
← →
Двенадцать © (2010-07-13 12:42) [6]> но мне кажется для реализации этой затеи все равно придется
> использовать мелкомягкие библиотеки от офиса... а это уже
> нельзя...
понятное дело.
потому и
> мутно это дело
если сам экспорт не сложный и грамотно написан - переписать под OO не сложно
естественно, с потерей красивостей
а экспорт просто данных(тупо таблицы) переписывается за 15 минут
← →
ixen (2010-07-13 12:51) [7]мне кажется написать такую службу аналогична написанию самого офиса...
← →
Двенадцать © (2010-07-13 13:06) [8]> написать такую службу аналогична написанию самого офиса
конечно
перепишите сам экспорт
← →
_VirEx_ (2010-07-13 13:17) [9]где-то слышал что уже есть две разработки - аналог com интерфейса для OO
гугл тебе в помощь
← →
XXL (2010-07-13 13:25) [10]Враппер то враппером - только вот объектная модель у MSO и OO несколько разная...
Проще купить 1 екземпляр самого простого оффиса, в нём сохранять и открывать уже в OO.
← →
Anatoly Podgoretsky © (2010-07-13 15:28) [11]> ixen (13.07.2010 12:06:00) [0]
Реально, но надо иметь три головы.
← →
Anatoly Podgoretsky © (2010-07-13 15:29) [12]> ixen (13.07.2010 12:24:04) [4]
Это можно, только библиотеки должны быть поставлены легально.
← →
Anatoly Podgoretsky © (2010-07-13 15:32) [13]> XXL (13.07.2010 13:25:10) [10]
Проверял, совместимость только на словах, в простых случаях, при том в обе
стороны, MS OFFICE работает с файлами ОО.
Поэтому если нужна работа с двумя продуктами, то надо не сказками
заниматься, а делать две паралельные системы, только это гарантирует должное
качество и работоспособность.
← →
XXL (2010-07-13 21:40) [14]
> Anatoly Podgoretsky © (13.07.10 15:32) [13]
Я говорю не о совместимости файлов и не об возможности открытия, а о том что если при использовании MSO пишем к примеру
Excel := CreateOleObject("Excel.Application");
Excel.WorkBooks.Add(xlWBatWorkSheet);
то при использовании ОО код будет совсем другим
SM:=CreateOleObject("com.sun.star.ServiceManager");
...
и далее по тексту.
← →
MsGuns © (2010-07-13 21:48) [15]На нашем мегазаводе эта тема (Open ofice + linux тип чтоб сэкономить на виндах) уже 4 года "висит". Периодически показывает оскал.
"Перйти" невозможно - надо все переписывать к черту (особенно если макросы используются, да и вообще)
Совет - наплевать и не заморачиваться - малкомягкие не обеднеют :)
← →
В школу! (2010-07-13 22:01) [16]XXL (13.07.10 21:40) [14]
Так работает, только писать надо. Я для себя эту проблему решил - со стороны выглядит как некий объект, внутри вызовы преобразуются либо к Excel, либо к ОО, вся функциональность не поддерживается, но всей мне и не надо.
← →
Jeer © (2010-07-13 22:27) [17]Я тут на днях, а не далее как сегодня после обеда, столкнулся с такой Микрософтовской хренью, что при 30 град внешней, у меня подскочило до 40 :)
Старый проект, экспорт из аля TStringGrid в Ексель.
Все работает и давным давно.
Но тут Заказчик решил добавить создание бланков ( т.е. форм без данных, но с шапкой и левым столбцом )
Я, недолго думая, делю один массив данных + левый стобец и верхняя строка с наименованиями:
vData := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
for i := 0 to AGrid.ColCount - 1 do
for j := 0 to AGrid.RowCount - 1 do
vData[j+1, i+1] := AGrid.Cells[i, j];
на массив данных и два массива ( столбец и строка наименований)
vData := VarArrayCreate([1, AGrid.RowCount-1, 1, AGrid.ColCount-1], varVariant);
for i := 1 to AGrid.ColCount - 1 do
for j := 1 to AGrid.RowCount - 1 do
vData[j, i] := AGrid.Cells[i, j];
vDataLeft := VarArrayCreate([1, AGrid.RowCount,1,1], varVariant);
for i := 0 to AGrid.RowCount - 1 do
vDataLeft[i + 1,1] := AGrid.Cells[0, i];;
vDataTop := VarArrayCreate([1, AGrid.ColCount], varVariant);
for i := 0 to AGrid.ColCount - 1 do
vDataTop[i + 1] := AGrid.Cells[i, 0];
Так вот оказалось ( для меня шоком ), что загнать одномерный столбцовый массив через соответствующий Range Екселя невозможно - надо для этого создавать двумерный массив, но одномерный по второй координате, как и указано выше для варианта vDataLeft.
Строковый одномерный vDataTop - отрабатывет без вопросов.
Вполне допускаю, что я чего-то не домыслил, впрочем, в такую жару - немудрено, мозг плавится :)
← →
mike (2010-07-13 23:08) [18]Вот это может помочь, если есть исходники программы, которая формирует отчет:
http://www.kb.mista.ru/article.php?id=180
Читать раздел "Упрощение миграции с MSO"
И еще вот такой зверь есть:
http://triteh.ru/libooo/index.php
Кстати, это не единственный враппер для calc . Был еще какой-то, но с сорцами, тоже для 1сников, только вот найти я его не могу.
← →
Anatoly Podgoretsky © (2010-07-14 13:41) [19]> XXL (13.07.2010 21:40:14) [14]
Ну так и я про тоже.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.10.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.003 c