XSpreadsheetDocument
Этот интерфейс предоставляет доступ к документу ACell. С помощью этого интерфейса можно получить доступ к листам документа, добавлять новые листы и удалять существующие.
Получение интерфейса XSpreadsheetDocument :
XSpreadsheetDocument(xComponent, UNO_QUERY_TYPE)
- xComponent - компонент указывающий на табличный документ
- UNO_QUERY_TYPE - тип запроса интерфейса ()
Пример использования:
Reference< XComponent > xComponent(xComponentLoader->loadComponentFromURL(
OUString("file:///C:/test/document.ods"), "_blank", 0, props));
Reference<XSpreadsheetDocument> xDoc(xComponent, UNO_QUERY_THROW);
Reference<XSpreadsheets> xSheets = xDoc->getSheets();
В этом примере демонстрируется получения интерфейса XSpreadsheetDocument из объекта xComponent.
Методы интерфейса XSpreadsheetDocument:
- getSheets() - возвращает коллекцию листов документа ACell. Этот объект позволяет получить доступ к ячейкам листов и работать с их содержимым.
Параметры:
-
Возвращаемое значение: XSpreadsheets
XTextDocument
XTextDocument является основным интерфейсом для работы с текстовым документом. Он предоставляет доступ к всему содержимому документа, включая текст, таблицы, графику, макросы и другие объекты. С помощью XTextDocument можно создавать новые документы, открывать существующие, сохранять их, а также выполнять множество других задач.
Пример использования XTextDocument:
Reference<XTextDocument> xDoc(xComponent, UNO_QUERY);
// Получаем интерфейс XText для вставки текста
Reference<XText> xText = xDoc->getText();
// Вставляем текст
xText->setString("Hello, World!");
Методы интерфейса XTextDocument:
- getText() - получает объект текста документа.
Параметры:
-
Возвращаемое значение: com::sun::star::text::Text
XComponentContext
XComponentContext - интерфейс, который предоставляет контекст компонента для других интерфейсов, используемых внутри компонента. Этот контекст используется для доступа к различным сервисам и объектам, которые могут быть использованы в приложении.
Пример использования XComponentContext:
Reference< XComponentContext > xContext(::cppu::bootstrap());
Reference< XMultiComponentFactory > xServiceManager(
xContext->getServiceManager());
Методы интерфейса XComponentContext:
- getServiceManager() - позволяет получить экземпляр менеджера сервисов, который будет использоваться из ключа /singletons/com.sun.star.lang.theServiceManager.
Параметры:
-
Возвращаемое значение: com::sun::star::lang::XMultiComponentFactory
- getValueByName(Name) - позволяет получить значение из контекста.
Параметры:
- string Name - имя значения.
Возвращаемое значение: Any
XComponentLoader
Интерфейс XComponentLoader необходим для загрузки компонентов по URL в среду фреймов.
Пример использования XComponentLoader:
// получаем экземпляр сервиса UNO Desktop
// получаем интерфейс XComponentLoader
Reference<XComponentLoader> xLoader(xContext->getServiceManager()->createInstanceWithContext(
"com.sun.star.frame.Desktop", xContext), UNO_QUERY);
// создаем новый документ или загружаем существующий
Sequence<PropertyValue> props(2);
PropertyValue prop[2];
prop[0].Name = "FliterName";
prop[0].Value <<= OUString("writer8");
prop[1].Name = "Overwrite";
prop[1].Value <<= Any(true);
props[0] = prop[0];
props[1] = prop[1];
Reference<XInterface> xComponent = xLoader->loadComponentFromURL(
"file:///C:/test/document.odt", "_blank", 0, props);
При создании документа необходимо указать параметры для метода LoadComponentFromURL(). Например, в вышеуказанном примере свойство "FilterName" указывает на формат файла, в который будет сохранен документ. В данном случае значение "writer8" означает, что файл будет сохранен в формате .odt.
Существуют и другие возможные значения для свойства "FilterName", например:
- "writer8": формат документа AText версии 8;
- "writer_pdf_Export": экспорт документа AText в формат PDF;
- "calc8": формат документа ACell версии 8;
- "calc_pdf_Export": экспорт документа ACell в формат PDF;
Методы интерфейса XComponentLoader:
- LoadComponentFromURL(URL, TargetFrameName, SearchFlags, Arguments) - загружает компонент, указанный в URL, в новый или существующий фрейм.
Параметры:
- string URL: определяет источник компонента AlterOffice. Допустимые значения:
-
private:factory/swriter
- новый документ AText; -
private:factory/scalc
- новый документ ACell; -
private:factory/sdraw
- новый документ AGraph; -
private:factory/simpress
- новый документ AConcept; -
file:///path/to/file
- загрузка документа из файла.
- string TargetFrameName: определяет окно, в котором будет открыт загружаемый документ. Допустимые значения:
-
_blank
- открыть в новом окне (по умолчанию); -
_self
- открыть в текущем окне; -
_parent
- открыть в родительском окне; -
_top
- открыть в верхнем окне. -
_default
- поведение загрузки документа будет зависеть от конкретной реализации компонента com.sun.star.frame.XComponentLoader. Если документ уже был открыт в другом окне, то оно будет использоваться. Если текущее окно содержит пустой документ того же типа, что и загружаемый, то загружаемый документ будет открыт в этом окне. В противном случае будет создано новое окно.
- long SearchFlags: определяет поведение поиска фрейма при загрузке документа или компонента . Допустимые значения:
-
SELF
- поиск будет выполнен в текущем окне. -
CHILDREN
- поиск будет выполнен рекурсивно во всех дочерних окнах. -
SIBLINGS
- поиск будет выполнен во всех окнах на том же уровне. -
PARENT
- поиск будет выполнен во всех родительских окнах. -
CREATE
- если окно не будет найдено, будет создано новое окно. -
TASKS
- поиск будет выполнен во всех главных окнах вместо того, чтобы остановиться на первом найденном окне. -
ALL
- эквивалентноCHILDREN | SIBLINGS | PARENT
. -
GLOBAL
- эквивалентноCHILDREN | SIBLINGS | PARENT | TASKS
.
- sequence<com::sun::star::beans::PropertyValue> Arguments: аргументы определяют поведение компонента или фильтра. Допустимые значения:
- "Overwrite" - перезаписать файл, если он уже существует
- "Hidden" - режим открытия документа в скрытом формате
- "Password" - установить пароль на файл
- "ReadOnly" - установить режим открытия документа "Только для чтения"
- "Preview" - режим открытия документа в качестве предварительного просмотра
Возвращаемое значение: XComponent
XStorable
XStorable - интерфейс, который используется для сохранения документов в файловую систему. Этот интерфейс предоставляет функциональность для сохранения документа в различных форматах, таких как ODT, PDF, DOC и других.
Пример использования XStorable:
Reference< XStorable > xStorable(xDoc, UNO_QUERY);
xStorable->storeToURL(saveUrl, props);
Методы интерфейса XStorable:
- getLocation() - после вызова метода XStorable::storeAsURL() возвращает URL-адрес, по которому объект был сохранен.
Параметры:
-
Возвращаемое значение: string
- hasLocation() - возвращает TRUE, если объект знает местоположение, FALSE если не знает.
Параметры:
-
Возвращаемое значение: boolean
- isReadonly() - невозможно успешно вызвать метод XStorable::store(), если хранилище данных доступно только для чтения. Возвращает TRUE, если хранилище данных доступно только для чтения, FALSE в противном случае.
Параметры:
-
Возвращаемое значение: boolean
- store() - сохраняет данные по URL-адресу. Только объекты, которые знают свое местоположение, могут быть сохранены.
Параметры:
-
Возвращаемое значение: void
Параметры:
Возвращаемое значение: void
|
- storeToURL(sURL, lArguments) - cохраняет данные объекта по URL-адресу не делая URL новым местоположением объекта. Это метод аналогичен функции экспорта в пользовательском интерфейсе. Принимает все виды экспортных фильтров, а не только комбинированные импортно-экспортные фильтры, потому что он реализует возможность экспорта, а не возможность сохранения.
Параметры:
- string sURL - местоположение, где следует сохранить объект.
- sequence< com::sun::star::beans::PropertyValue > lArguments - дополнительные, необязательные параметры при сохранении. Некоторые из них описаны в интерфейсе XTextDocument.
Возвращаемое значение: void
XComponent
XComponent - интерфейс, который используется для управления компонентами AlterOffice. Этот интерфейс предоставляет функциональность для открытия, сохранения и закрытия документов.
Пример использования XComponent:
// сохраняем документ
xStorable->storeAsURL(saveUrl, props);
// закрывает документ
xComponent->dispose();
Методы интерфейса XComponent:
- addEventListener(xListener) - добавляет прослушиватель событий к объекту. Если вызывается метод XComponent::dispose(), то источник событий вызывает метод disposing этого прослушивателя.
Параметры:
- XEventListener xListener - созданный прослушиватель.
Возвращаемое значение: void
- dispose() - создатель объекта вызывает этот метод, чтобы явно освободить все ресурсы, удерживаемые этим объектом, и тем самым разорвать циклические ссылки.
Параметры:
-
Возвращаемое значение: void
- removeEventListener(aListener) - удаляет прослушиватель событий из списка прослушивателей. Если указанный прослушиватель не зарегистрирован, то метод не будет выполнять никаких действий.
Параметры:
- XEventListener aListener - удаляемый прослушиватель.
Возвращаемое значение: void
Ниже прикреплен пример кода на языке C++ и C#, который демонстрирует, как использовать API AlterOffice для создания нового документа AText и сохранения его в формате ODT. Он использует интерфейсы XComponentContext, XComponentLoader, XComponent, XStorable и другие для работы с объектами и функциями AlterOffice. В частности, этот код создает новый документ AText и сохраняет его.