|
Изменить цвет ячеек в OpenOffice Writer. | ☑ | ||
---|---|---|---|---|
0
lopolopserg
10.12.14
✎
09:33
|
Доброго времени суток!
Впервые решил Создать док OpenOffice из 1с. Благодаря Мисте нашел почти всё что хотел. Хроме одного: Как сделать в таблице "белые линии" или без обрамления. Буду благодарен любой помощи! Спасибо! Таблица создаётся, текст вставляется. Код создание таблицы: //Создаём таблицу Table = Document.createInstance("com.sun.star.text.TextTable"); Table.initialize(1, 2); // строки, столбцы InsertPoint = Document.Text.getEnd(); InsertPoint.getText().insertTextContent(InsertPoint, Table, false); //Вставляем текст реквизитов в ячейки таблицы ДанныеСтроки = Новый COMSafeArray("VT_VARIANT", 2); ДанныеСтроки.SetValue(0, ЗаполениеПодвала1()); ДанныеСтроки.SetValue(1, ЗаполениеПодвала2()); Данные = Новый COMSafeArray("VT_VARIANT", 1); Данные.SetValue(0, ДанныеСтроки); Table.setDataArray(Данные); // Устанавливаем ширину таблицы и столбцов Table.Width = 10000; TableColumnSeparators = Table.TableColumnSeparators; TableColumnSeparators.GetValue(0).Position = 2000; Table.TableColumnSeparators = TableColumnSeparators; |
|||
1
Йохохо
10.12.14
✎
09:42
|
(c) AndrewMacro
Sub Borders Dim aBorder, oRange, oDoc, oSheets Dim TableBorder As New com.sun.star.table.TableBorder Dim aTopLine As New com.sun.star.table.BorderLine oDoc = ThisComponent oSheets = oDoc.Sheets(0) oRange = oSheets.getCellRangeByPosition(8,2,8,5) aBorder = oRange.TableBorder aTopLine.OuterLineWidth = 250 aTopLine.InnerLineWidth = 0 aTopLine.Color = 170000 oRange.TableBorder.IsTopLineValid = 1 aBorder.TopLine = aTopLine oRange.TableBorder = aBorder End Sub |
|||
2
lopolopserg
10.12.14
✎
09:43
|
(1) а это не для Экселя разве?
|
|||
3
Йохохо
10.12.14
✎
09:45
|
(2) Useful Macro Information
For OpenOffice.org By Andrew Pitonyak |
|||
4
lopolopserg
10.12.14
✎
09:48
|
Ладно. Я так понял, чтобы изменить "свойства таблицы" нужно в таблицу (или ячейку) встать курсором. Не подскажете?
|
|||
5
Йохохо
10.12.14
✎
09:49
|
(4) где ты увидел определение курсора по листу?) там рендж oSheets.getCellRangeByPosition(8,2,8,5)
|
|||
6
lopolopserg
10.12.14
✎
09:52
|
(5) запутался. так это для электронной таблицы код или для текстового документа?
у меня в текстовом документе таблица. как я найду грубо oSheets.getCellRangeByPosition(8,2,8,5)? или чего-то не понимаю. |
|||
7
Йохохо
10.12.14
✎
10:14
|
(6) это называется OO Writer, сходу не нашел примера
|
|||
8
lopolopserg
10.12.14
✎
10:19
|
(7) Понятно. В общем не получилось пока у меня. Гугл тоже пока не помогает. Если время будет, то можно примерчик из под 1с-ки.
Спасибо! |
|||
9
lopolopserg
10.12.14
✎
12:16
|
Разобрался. Так работает. В коллекцию Мисты.
//Вставляем текст реквизитов в ячейки таблицы ДанныеСтроки = Новый COMSafeArray("VT_VARIANT", 2); ДанныеСтроки.SetValue(0, ЗаполениеПодвала1()); ДанныеСтроки.SetValue(1, ЗаполениеПодвала2()); Данные = Новый COMSafeArray("VT_VARIANT", 1); Данные.SetValue(0, ДанныеСтроки); Table.setDataArray(Данные); // Устанавливаем ширину таблицы и столбцов Table.Width = 10000; TableColumnSeparators = Table.TableColumnSeparators; TableColumnSeparators.GetValue(0).Position = 5000; //TableColumnSeparators.GetValue(1).Position = 1000; Table.TableColumnSeparators = TableColumnSeparators; v = Table.TableBorder; x = v.TopLine; x.OuterLineWidth = 0; v.TopLine = x; x = v.LeftLine; x.OuterLineWidth = 0; v.LeftLine = x; x = v.RightLine; x.OuterLineWidth = 0; v.RightLine = x; x = v.TopLine; x.OuterLineWidth = 0; v.TopLine = x; x = v.VerticalLine; x.OuterLineWidth = 0; v.VerticalLine = x; x = v.HorizontalLine ; x.OuterLineWidth = 0; v.HorizontalLine = x; x = v.BottomLine ; x.OuterLineWidth = 0; v.BottomLine = x; Table.TableBorder = v |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |