Получение свойств документа по его URL

Автор Nick222, 26 июля 2017, 00:02

0 Пользователи и 1 гость просматривают эту тему.

Nick222

Извините, завёл новую тему, т.к. информации много, а у меня каша в голове :(

Идея такая:

Есть таблица Calc.
Туда юзер в первую колонку заносит полные пути к файлам, с которыми он работает (делает список).
Макрос должен взять этот путь и заполнить таблицу свойств данного файла (в той же строчке в других колонках).
Мне понравилась идея с новыми функциями - вроде бы функции, которые выводят свойства открытого файла, я понял.

Хотя в DocumentStatistics я так и не разобрался - что он отдаёт и как это использовать.
Нашёл вот это, но не очень понял http://forumooo.ru/index.php/topic,1463.0/msg,11230.html
Где бы посмотреть хелп - как вернуть, например, количество страниц Writer или количество таблиц в Calc.
И нужно ли для этого определять тип файла (и как это делать)?

Пока также мне не очень ясно, как взять из ячейки в Calc полный путь к файлу и засунуть (видимо) в StarDesktop.loadComponentFromURL ?

Дальше, надеюсь, уже начну понимать...

Извините за хаос - хочу разобраться, начать писать сам, а то дальше Паскаля так и не ушёл...

Питоньяка скачал - но это, скорее, справочник, а не учебник, ИМХО.
Xubuntu 21.04, LibreOffice 7.2.*

economist

Цитата: Nick222 от 25 июля 2017, 22:02Питоньяка скачал - но это, скорее, справочник, а не учебник, ИМХО.

Правильно, учебник вот:
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Nick222

А можно ли получить значение из ячейки с определённым расположением относительно исходной: например, из ячейки на одну выше или левее?

И где бы прочитать про синтаксис?

Везде только абсолютные адреса или относительные, но не в том смысле...

Или надо брать адрес исходной ячейки и пересчитывать адрес для нужной ячейки?
Xubuntu 21.04, LibreOffice 7.2.*

economist

Я вам советую использовать вверху модуля 2 строки:

Option VBASupport 1
Option Compatible

И вам сразу станут доступны все Excel-евские методы прямой ссылки на ячейки:
Cells(1,5)
Range("E1")
[E1]
[ИМЯ]

и методы смещения
[E1].Offset(1,-3) это будет [B2]

Также будет намного легче находить "граничные" ячейки - диапазонов, заполненные, пустые итп:
Range("C7").Select
Range(Selection, Selection.End(xlDown)).Select

Код-гибрид VBA+SB прекрасно работает, очень компактен и за ним будущее :-))
А уж прочитать про VBA+Excel - можно везде. Сайтов неприлично много, чтобы называть их вслух. 
   
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

Nick222

#4
Вопрос:

title2 = StarDesktop.loadComponentFromURL("(ПУТЬ)", "_hidden", 0, Dummy()).getDocumentProperties().Title

помещает в текущую ячейку заголовок документа, путь к файлу которого указан, но при этом LO открывает окно этого файла и остаётся в нём.

Где бы прочитать - как это сделать без открытия окна (а ещё лучше без открытия файла :) )?
Xubuntu 21.04, LibreOffice 7.2.*