Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.10.10;
Скачать: CL | DM;

Вниз

Есть ли такое?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.011 c
15-1278590211
ocean
2010-07-08 15:56
2010.10.10
Зачем металлическое кольцо


2-1279601277
Андрей_1
2010-07-20 08:47
2010.10.10
Цвет шрифта DBGrid


2-1279354024
Student :)
2010-07-17 12:07
2010.10.10
программно свернуть чужую программу


2-1279193322
Aleks
2010-07-15 15:28
2010.10.10
Экспорт ListView в эксель


15-1278707383
Юрий
2010-07-10 00:29
2010.10.10
С днем рождения ! 10 июля 2010 суббота