| | | | |
Процедуры и функции для работы с OpenOffice | Полный текст материала
Другие публикации автора: Владимир Ермаков
Цитата или краткий комментарий: «... Все в мире развивается по спирали. Раньше программисты разрабатывали механизмы взаимодействия между Delphi и MSExcel, теперь они методом проб и ошибок создают приложения для создания документов в OpenOffice. ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 10 | 90.9% | | | | Ничего особенно нового и интересного | [2] | 1 | 9.1% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 11 | | | Все понятно, материал читается легко | [1] | 7 | 100% | | | | Есть неясности в изложении | [2] | 0 | 0% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 7 |
[Работа с OpenOffice]
Отслеживать это обсуждение
Всего сообщений: 1711-12-2008 02:17procedure TopofCalc.CloseProg; - почему закрываем только Excel, а Calc? |
|
22-09-2008 05:38Господа! А не кажется ли вам, что вы перепутали обсуждение статьи с Круглым Столом -- форумом, на котором задаются вопросы по программированию (в том числе, и по работе с OpenOffice)? |
|
22-09-2008 02:10Уважаемые!!!
Может кто сталкивался, помогите пожайлуста!!!
есть процедура записи в ячейку текста
procedure TOpenOfiice.InsertTextByCoord(const Text: String; col, row: integer;
color_: COLORREF);
begin
Cell := Sheet.getCellByPosition(col, row);
Cell.setString(Text);
Cell.IsCellBackgroundTransparent := TRUE ;
Cell.CellBackColor := color_;
end;
после каждой записи вырастает импользуемая память soffice.bin
CELL освобождаю командой
CELL := Unassigned;
Это можно пережить но есть одно но, когда пытаюсь сделать с лишним сто листов, на каждом листе по 400 записей объем занимаемой памяти soffice.bin
увеличивается до 600 МБт
А после всех записей - он не закрывается т.е. не освобождает память,
закрытие документа делаю следующим образом
Document.Close(True);
OO.Free;//ServiceMangaer
Document:=Unassigned;
Document.Dispose;
Desktop:=Unassigned;
OO := Unassigned;
OO := null;
Document := null;
Desktop := null;
Вопрос: Не подскажите как освободить память, после каждой записи
и в конце при сохранении документа? |
|
06-03-2008 02:34Имеет смысл запускать диспатчер только при открытии/создании документа со свойством IsVisible=True, иначе результат выполнения executeDispatch будет нулевым (но ошибок не будет)! |
|
23-11-2007 04:40Господа, а как узнать число заполненных строк и столбцов в листе OpenOffice Calc.
В MS Excel можно так:
xCol := objExelSheet.Cells.CurrentRegion.Columns.Count;
xRow := objExelSheet.Cells.CurrentRegion.Rows.Count;
А вот в OO Сalc:
xRow := objExelSheet.Rows.Count;
xCol := objExelSheet.Columns.Count;
Но в OO возвращается количество всех столбцов и строк, в мне надо количество только заполненных.
|
|
11-09-2007 06:27вот бы автор сказал, что писать в uses... |
|
27-06-2007 02:15в екселе имеем функцию копирования областей между шитами:
function CopyRange(Ssheet:variant;Srange:string;Dsheet:variant;Drange:string):boolean;
begin
CopyRange:=true;
if VarIsNull(FActiveWorkbook) then
Exit;
try
FActiveWorkbook.Sheets.Item[Ssheet].Range[srange].copy(
FActiveWorkbook.Sheets.Item[Dsheet].Range[drange]);
except
CopyRange:=false;
end;
end;
как сделать аналогичную вещь в оо? |
|
18-06-2007 02:44пишу
calc.SetCellByPos(11,1,'=SUM(a1:a10)');
calc.SetCellByPos(11,2,'=SUM(a1:a10)');
calc.bold[11,2]:=true;
смотрю результат
в ячейке 10,10 формула =SUM(A1:A10) - не жирно
в ячейке 11,11 "формула" '55 (значение суммы, превращенное в текст) - зато жирно.
хочу не текст жирным иметь, а признак ячейки.
что я делаю не так?
|
|
24-04-2007 13:06А есть ли нечто подобное о Writer-е и об аналоге PowerPoint-а OOImpress? |
|
03-04-2007 06:25Все отлично. Но хотелось бы добавить форматирование ячеек (границы). И конечно нужно оформить в отдельный модуль или компонент. Тогда уже ничего самому делать не надо будет. |
|
12-03-2007 08:31С ОО пришлось повозиться, конечно. Занудство еще то.
Рабочий пример для ОО: http://cacxa.narod.ru/ooExample.rar, создание счета. Проект для 7-х Дельфей, но, полагаю, пойдет на каких угодно, начиная с 5-х.
Единственное чего не научился - выгружать ОО из памяти. Если у кого есть мысли на этот счет - пишите плиз. |
|
03-03-2007 08:53Прошу прощения. Неправильно задал размерность массива (был один пустой элемент), все прекрасно работает.
|
|
03-03-2007 08:31При работе с диспетчером дает ошибку "The VARIANT does not contain an object type", при условии что массив с параметрами заполнен. Если же передавать пустой массив (VarArrayCreate([0, -1], varVariant)), то все в порядке. Создание и заполнение массива, а также использование диспетчера взято из статьи...
В чем может быть проблема?
ps: пробую в Writer-е сделать Search and Replace |
|
23-02-2007 15:23Писал подобную вещь пару лет назад - замучился, особенно большие проблемы были с форматированием в Calc-е. |
|
21-02-2007 04:38А можно готовый компонент для этой статьи? |
|
20-02-2007 13:10Ну и замечание!!! Сообщение не подписано |
|
20-02-2007 03:18Код оформлен небрежно и не по правилам. Сообщение не подписано |
|
|
|