using System; using unoidl.com.sun.star.lang; using unoidl.com.sun.star.uno; using unoidl.com.sun.star.frame; using unoidl.com.sun.star.beans; using unoidl.com.sun.star.text; using unoidl.com.sun.star.table; namespace main { class Program { static void Main(string[] args) { // получаем контекст компонентов офиса XComponentContext xContext = uno.util.Bootstrap.bootstrap(); // получаем сервис-менеджер XMultiComponentFactory xServiceManager = (XMultiComponentFactory)xContext.getServiceManager(); // получаем экземпляр сервиса UNO Desktop // получаем интерфейс XComponentLoader Object desktop = xServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", xContext); XComponentLoader xComponentLoader = (XComponentLoader)desktop; // создаем новый документ или загружаем существующий PropertyValue[] loadProps = new PropertyValue[2]; loadProps[0] = new PropertyValue(); loadProps[0].Name = "FilterName"; loadProps[0].Value = new uno.Any("writer8"); loadProps[1] = new PropertyValue(); loadProps[1].Name = "Overwrite"; loadProps[1].Value = new uno.Any(true); XComponent xComponent = xComponentLoader.loadComponentFromURL("file:///C:/test/document.odt", "_blank", 0, loadProps); // Получаем ссылку на XTextDocument из XComponent XTextDocument xDoc = (XTextDocument)xComponent; // Получаем ссылку на XMultiServiceFactory из XTextDocument XMultiServiceFactory xDocMSF = (XMultiServiceFactory)xDoc; // Создаем объект таблицы через XMultiServiceFactory XTextTable xTable = (XTextTable)xDocMSF.createInstance("com.sun.star.text.TextTable"); // Инициализируем таблицу размером 2x2 xTable.initialize(2, 2); // Получаем ссылку на XText из XTextDocument XText xText = (XText)xDoc.getText(); // Создаем курсор для вставки таблицы XTextCursor xTextCursor = (XTextCursor)xText.createTextCursor(); // Получаем ссылку на XTextRange из XTextCursor XTextRange xTextRange = (XTextRange)xTextCursor; // Перемещаем курсор в начало документа xTextRange.getStart(); // Получаем ссылку на XTextContent из таблицы XTextContent xTC = (XTextContent)xTable; // Вставляем таблицу в документ xText.insertTextContent(xTextRange, xTC, false); //Получаем доступ к ячейке с именем A1 XCell xCell = (XCell)xTable.getCellByName("A1"); XText xTextCell = (XText)xCell; XTextCursor xCursor = (XTextCursor)xTextCell.createTextCursor(); //Вставляем в ячейку текст xCursor.setString("Hello, World!"); //Получаем объект столбцов таблицы XTableColumns xTableColumns = (XTableColumns)xTable.getColumns(); //Удаляем 1 столбец xTableColumns.removeByIndex(1, 1); // получаем интерфейс XStorable для текущего документа XStorable xStorable = (XStorable)xComponent; // задаем URL для сохранения документа string saveUrl = "file:///C:/test/document.odt"; // сохраняем документ xStorable.storeAsURL(saveUrl, loadProps); // закрываем документ //xComponent.dispose(); } } }