Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 28
1

Установить ширину столбца таблицы (Writer, OpenOffice)

23.11.2011, 14:35. Просмотров 1449. Ответов 2
Метки нет (Все метки)

Всем привет. Нужно установить ширину столбца таблицы Writer. На VBA код такой:
Visual Basic
1
2
3
4
oTblColSeps = oTable1.TableColumnSeparators
  oTblColSeps(0).Position = 3000
  oTblColSeps(1).Position = 5000
oTable1.TableColumnSeparators = oTblColSeps
Вот 2 и 3 строчку не получается перевести на Builder. Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Variant App = Variant::CreateObject("com.sun.star.ServiceManager");
    Variant Desktop = App.OleFunction("createInstance", "com.sun.star.frame.Desktop");
    //Параметры открытия
    int Bounds[2] = {0,0};
    Variant OpenParams = VarArrayCreate(Bounds, 1, varVariant);
    Variant MyStruct = App.OleFunction("Bridge_GetStruct","com.sun.star.beans.PropertyValue");
    MyStruct.OlePropertySet("name","Hidden");
    MyStruct.OlePropertySet("value", false);
    OpenParams.PutElement(MyStruct, 0);
    //Открытие файла шаблона
    Variant DocWord = Desktop.OleFunction("LoadComponentFromURL", "file://localhost/D:/333.doc", "_blank", 0, OpenParams);
    //Получаем ячейку
    Variant Tables = DocWord.OleFunction("getTextTables");
    Variant Table = Tables.OleFunction("getByIndex", 0);
    Variant oTblColSeps = Table.OlePropertyGet("TableColumnSeparators");
//нужно перевести на Builder
//  oTblColSeps[0].Position = 2000;
    Table.OlePropertySet("TableColumnSeparators", oTblColSeps);
Заранее благодарен если кто сможет чем помочь.
PS "TableColumnSeparators" не будет работать в OO версии 3.3 (баг офиса)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2011, 14:35
Ответы с готовыми решениями:

Как установить фиксированную ширину столбца QTableWidget
Добрый вечер! возникло несколько вопросов по qTableWidget 1) есть ли какой-нибудь специальный...

Поиск и замена текста в OpenOffice Writer
Стоит такая задача: 1. Нужно подключиться к открытому на данный момент документу (в OpenOffice...

Эмуляция OpenOffice Writer: Формат - Абзац
Реализуйте программу, эмулирующую внешний вид заданной экранной формы : Эмуляция OpenOffice...

Вставка графиков из MathCAD в OpenOffice Writer/MS Word
Хотелось бы вставлять графики с подписями по осям (рис. 02), но, видимо из-за проблем с кодировкой,...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29726 / 19549 / 7664
Регистрация: 22.10.2011
Сообщений: 34,104
Записей в блоге: 6
23.11.2011, 14:49 2
По идее, надо получить
C++
1
2
Variant sep = App.OleFunction("Bridge_GetStruct",
   "com.sun.star.text.TableColumnSeparator");
, потом вытянуть в эту структуру значение из нужного элемента массива oTblColSeps (через GetByIndex), изменить его через
C++
1
sep.OlePropertySet("Position", 3000);
, и затолкать назад в oTblColSeps. Поверить не могу, именно по причине установленного 3.3.0
0
1 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 28
23.11.2011, 21:17  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
потом вытянуть в эту структуру значение из нужного элемента массива oTblColSeps (через GetByIndex),
А вот тут поподробнее, как код будет выглядеть?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2011, 21:17

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как в OpenOffice Writer сделать автоматическое содержание?
Как в OpenOffice Writer сделать автоматическое содержание?

Из-за чего возникают разрывы в тексте? OpenOffice Writer
Пользуюсь Опен Офис Врайтер. Короче говоря, когда вставляют текст, возникают неоправданные разрывы...

Как установить ширину таблицы
Для компьютера с экраном 35" таблица шириной=30% срабатывает нормально. Для планшета с экраном 10"...

Не могу изменить ширину столбца таблицы (MSWord2013)
Доброе время суток, сделал таблицу с одним столбцом, в нее с помощью буфера обмена, вставлял текст...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.