powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Акес и ОpenOffice
74 сообщений из 74, показаны все 3 страниц
Акес и ОpenOffice
    #34560987
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может это бред...
кто-нибудь пробовал выводить в ООо
тоже самое что и в ворд и эксель?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561060
Lamazoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подробнее нелзя было расшифровать что такое OO - тут что фсе маги и декодеры чтоли. А вообщето на скока я думаю что OO (Open Office - наверное) должен позволять работать с собой как с объектом - попробуй зделать что то - типа
set obj=createobject ("openoffice.application")
и рассматривай этот объект в locals
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561102
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насчёт ООо ты угадал.
а вот твоё второе предположение требует проверки, к сожалению как бы ну.....
вот и спрашиваю (чтоб на чужих ошибках научиться), вдруг есть , кто по этим граблям прошёл...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561107
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561333
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадянасчёт ООо ты угадал.
а вот твоё второе предположение требует проверки, к сожалению как бы ну.....
вот и спрашиваю (чтоб на чужих ошибках научиться), вдруг есть , кто по этим граблям прошёл...

я на этих граблях до сих пор прыгаю - мое мнение: бесплатных продуктов не бывает, бывают продукты, за которые ВНАЧАЛЕ не платишь...

вот русскоязычный форум: http://community.i-rs.ru/

если есть возможность остаться на MS Office - лучше оставаться на нем.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561414
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2nibbles
там я уже засветился

ну тоо что бесплатный сыр только в мышеловке я догадываюсь....

но перед тем как пробовать, хочется послушать мнение бывалых
если не в лом - поделись проблемами, нужно оценить затраты по переходу
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34561453
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя2nibbles
там я уже засветился

ну тоо что бесплатный сыр только в мышеловке я догадываюсь....

но перед тем как пробовать, хочется послушать мнение бывалых
если не в лом - поделись проблемами, нужно оценить затраты по переходу

Навскидку:
Длительные (от 20 до 60 сек на моем программерском железе) операции загрузки, открытия, перерасчета листов, глюки при работе с шаблонами (если шаблоны лежат на сетевых ресурсах), невозможность использовать автоматически созданные макро в своем коде, убогий (другого слова не подберешь) редактор исходного кода. Отсутствие внятной документации по языку - тот гуид, что всем предлагается в качестве мануала по программированию, содержит не все необходимые в работе с ООо команды - доискивать приходится на форумах... кстати, идти лучше сразу на англоязычный http://www.oooforum.org/forum/search.phtml - наш в этом случае помогал мне редко.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34669765
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочу использовать но не могу разобраться

есть примеры, но ...

http://triteh.ru/libooo/

может кто поможет как из акса открыть документ экселя используя эту приблуду для openoffice
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34669942
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяхочу использовать но не могу разобраться

есть примеры, но ...

http://triteh.ru/libooo/

может кто поможет как из акса открыть документ экселя используя эту приблуду для openoffice

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public Sub ufTest()
Dim oApp As TOpenOffice.Bridge

    Set oApp = New TOpenOffice.Bridge
    
    oApp.Open ("C:\test.xls")
    

End Sub

Имхо, лучше работать напрямую через интерфейс самого OOo.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34669945
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34669958
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тока в референсах надо подключить бибилотеку TOpenOffice... пока приблуду не ковырял, но довольно интересная, хотя, естественно, всех потребностей программиста она охватить не сможет
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34669970
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?%Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing


при таком использовании (через "As Object") добавлять ссылку на библиотеку не нужно - не имеет смысла
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670061
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИмхо, лучше работать напрямую через интерфейс самого OOo.


а это как?


а через эту приблуду много не сделаешь.....
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670081
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что надо подлючить в референсах от opeNoffice?
я не смог разобраться ...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670383
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего. Тут только через CreateObject

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Command1_Click()

Dim objServiceManager As Object
Dim Desktop As Object
Dim Document1 As Object
Dim OpenParams( 0 )

Set objServiceManager = CreateObject("com.sun.star.ServiceManager")

Set OpenParams( 0 ) = OOoPropertyValue("ReadWrite", True)

Set Desktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")

Set Document1 = Desktop.LoadComponentFromURL("file:///C:/MyFile.xls", "_blank",  0 , OpenParams)

End Sub
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670399
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nibbles %?*?%Эту "приблуду" надо скачать и добавить ссылку на нее в референсы проекта. После этого можно работать как там описано. Открыть документ:

Код: plaintext
1.
2.
3.
4.
5.
Dim t As Object

Set t = CreateObject("TOpenOffice.Bridge")
t.Open "C:\MyFile.xls"
t.Visible = True
Set t = Nothing


при таком использовании (через "As Object") добавлять ссылку на библиотеку не нужно - не имеет смысла

Разумеется. Просто не понял, в чем проблема у автора воспользоваться этой утилиткой. Думал, может проблема с регистрацией.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670617
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
утиоиту я зарегил, только она не много может...


Код: plaintext
Set OpenParams( 0 ) = OOoPropertyValue("ReadWrite", True)


OOoPropertyValue - функция не определена...


в этом случае , что-то нада регистрировать?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670722
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня работает. Ну, сделай так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Command1_Click()

Dim objServiceManager As Object
Dim Desktop As Object
Dim Document1 As Object
Dim OpenParams()

Set objServiceManager = CreateObject("com.sun.star.ServiceManager")

Set Desktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")

Set Document1 = Desktop.LoadComponentFromURL("file:///C:/MyFile.xls", "_blank",  0 , OpenParams)

End Sub
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670795
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, тормжу. Вот функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function OOoPropertyValue(cName, uValue)
Dim oPropertyValue As Object

Set oPropertyValue = objServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oPropertyValue.Name = cName
oPropertyValue.Value = uValue

Set OOoPropertyValue = oPropertyValue
End Function
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34670835
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати - только что заметил - уже ведь дали вот эту ссылку - Programming OpenOffice.org with Visual Basic . Там очень подробно и с примерами описано как работать с OpenOffice API. Пользуйтесь - все рабочее.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34671746
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я у MS английский читать могу, но с этим - проблемы....
если не влом, ткните в то место где написано про то, как работать с экселем через ООо
чтоб и RANGE всё прочее экселевское можно было пользовать.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34671761
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачай вот этот файлик Тут детально сравниваются VBA и SB.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34672014
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?% Скачай вот этот файлик Тут детально сравниваются VBA и SB.

похоже, на то что требуется.
нада только разобраться..
если удастся, то рантаймовские версии акса можно будет использовать и для создания/заполнения отчетов и в ворде и экселе, а это раширяет возможности.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34672680
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот этот код работает:


Код: plaintext
1.
2.
3.
4.
5.
6.
Set ExlDb = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ExlDb.createInstance("com.sun.star.frame.Desktop")
Set Document1 = Desktop.LoadComponentFromURL("file:///C:/NL/накл2.xls", "_blank",  0 , OpenParams)
Set WrkSht = Document1.CurrentController.ActiveSheet
With WrkSht
            
    .getCellRangeByName("грузоотправитель").String = srst![........


а вот пребразовать не могу

Код: plaintext
1.
2.
3.
4.
5.
With WrkSht
   .Rows("21:26").Delete Shift:=xlUp
           .Rows("20:2" & i -  2 ).EntireRow.Insert
            .Rows("19:19").Select
            .Rows("19:19").Copy
            .Rows("20:2" & i -  2 ).Select



поиск не помог
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34674792
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пара функций, для затравки...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
'Insert string, formula or value in a cell and set basics formats
'Calc_InsertStringCell("A1","My Text","0.000", "Arial",18,1,True,True)
'Calc_InsertStringCell("A1","=sum(A2:A3)","0.000", "Arial",18,1,True,True)
'Calc_InsertStringCell("A1",15.17,"0.000,00", "Arial",18,1,True,True)

Sub Calc_InsertStringCell(strCell As String, uTxt, Optional strFormat As String, Optional strFont As String, Optional intSize As Integer, Optional intPos As Integer, Optional blWrp As Boolean, Optional blAutaj As Boolean)
'strCell = Cell Address in A1 layout
'uTxt = String, formula or value to be inserted in strCell
'strFormat = Cell format to applicate (optional)
'strFont = Font name (optional)
'intSize = Font size (optional)
'intPos = 1=Left; 2=Right; 3=Justify Word Wrap; 4=Center (optional)
'blWrp = TextWrapped (optional)
'blAutaj  = ShrinktoFit (optional)

   Dim objCel As Object
   Set objCel = oSheet.getCellByPosition(Calc_ColumnNumber(strCell), Calc_RowNumber(strCell)) 'Format (Column,Row)
   Select Case TypeName(uTxt)
   Case "String"
      If Left(uTxt,  1 ) = "=" Then 'It's a formula
         objCel.setFormula uTxt
      Else 'It's a string
         objCel.setString uTxt
      End If
   Case "Double", "Integer", "Long"
      objCel.SetValue uTxt
   End Select
   If IsMissing(strFormat) = False Then
      If Len(strFormat) >  0  Then 'there is a format
         Calc_FormatRange strCell, strFormat
      End If
   End If
   If Len(strFont) >  0  Then 'There is a font name
      objCel.SetPropertyValue "CharFontName", strFont
   End If
   If intSize >  0  Then 'Ther is a font size
      objCel.SetPropertyValue "CharHeight", intSize
   End If
   If intPos >  0  And intPos <=  4  Then
      '1=Left; 2=Right; 3=Justify Word Wrap; 4=Center
      Select Case intPos
         Case  1 : objCel.SetPropertyValue "ParaAdjust",  0   'Left
         Case  2 : objCel.SetPropertyValue "ParaAdjust",  1   'Right
         Case  3 : objCel.SetPropertyValue "ParaAdjust",  2   'Justify Word Wrap
         Case  4 : objCel.SetPropertyValue "ParaAdjust",  3  'Center
      End Select
   End If
   objCel.SetPropertyValue "ShrinkToFit", blAutaj 'ShrinktoFit
   objCel.SetPropertyValue "IsTextWrapped", blWrp 'TextWrapped
End Sub


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'Insert strings, formulas or values in 15 columns of a row
'Calc_InsertStringRow("A1","MyText1","MyText2", "MyText3"

Sub Calc_InsertStringRow(strCell As String, Optional uTxt01, Optional uTxt02, Optional uTxt03, Optional uTxt04, Optional uTxt05, Optional uTxt06, Optional uTxt07, Optional uTxt08, Optional uTxt09, Optional uTxt10, Optional uTxt11, Optional uTxt12, Optional uTxt13, Optional uTxt14, Optional uTxt15)
   Dim objCel As Object
   If IsMissing(uTxt01) = False Then Calc_InsertStringCell strCell, uTxt01
   If IsMissing(uTxt02) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  1 ) & Calc_RowNumber(strCell) +  1 , uTxt02
   If IsMissing(uTxt03) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  2 ) & Calc_RowNumber(strCell) +  1 , uTxt03
   If IsMissing(uTxt04) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  3 ) & Calc_RowNumber(strCell) +  1 , uTxt04
   If IsMissing(uTxt05) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  4 ) & Calc_RowNumber(strCell) +  1 , uTxt05
   If IsMissing(uTxt06) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  5 ) & Calc_RowNumber(strCell) +  1 , uTxt06
   If IsMissing(uTxt07) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  6 ) & Calc_RowNumber(strCell) +  1 , uTxt07
   If IsMissing(uTxt08) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  7 ) & Calc_RowNumber(strCell) +  1 , uTxt08
   If IsMissing(uTxt09) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  8 ) & Calc_RowNumber(strCell) +  1 , uTxt09
   If IsMissing(uTxt10) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  9 ) & Calc_RowNumber(strCell) +  1 , uTxt10
   If IsMissing(uTxt11) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  10 ) & Calc_RowNumber(strCell) +  1 , uTxt11
   If IsMissing(uTxt12) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  11 ) & Calc_RowNumber(strCell) +  1 , uTxt12
   If IsMissing(uTxt13) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  12 ) & Calc_RowNumber(strCell) +  1 , uTxt13
   If IsMissing(uTxt14) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  13 ) & Calc_RowNumber(strCell) +  1 , uTxt14
   If IsMissing(uTxt15) = False Then Calc_InsertStringCell Calc_ColumnAddNumber(strCell,  14 ) & Calc_RowNumber(strCell) +  1 , uTxt15
End Sub
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34675126
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
меня счас особо интересует удаление, копирование , вставка строк (массива ячеек)
передаче в файл (скажем так) массива значений , как это возможно в эксель


и вообще , где можно почитать про те параметры и функции , которые используют , желательно на русском.
а то частные применения показывают, а хочется самому разобраться.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34675461
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На, разбирайся. Для начала, думаю, хватит.

На русском ничего подобного не встречал. Найдешь - не забудь поделится.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34675625
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё раз спасибо
буду разбираться.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34676110
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут по-русски , правда для С++, но по аналогии можно

http://www.realcoding.net/article/view/2663
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34676217
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все у меня есть, уже переписано под VB...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34676259
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
%?*?%Это все у меня есть, уже переписано под VB...

ну так скинь, сэкономь мне время.....

а вордовские прибамбасы?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34677387
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как заменить такую конструкцию

Код: plaintext
       d = .Range("строка").row

получить номер строки по имени
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34677397
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может можно что-то подключить в референсах, чтоб можно смотреть свойства и методы объектов?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34677508
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяа как заменить такую конструкцию

Код: plaintext
       d = .Range("строка").row

получить номер строки по имени

Код: plaintext
.getCellRangeByName("строка").getCellAddress().Row
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34678083
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2PA
а где ты об этом прочитал?
я тоже хочу !!!!
в инете куча примеров по использованию, но я не могу найти с описанием эти методов
иначе мне по каждой строке спрашивать придётся!!!!
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34678158
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя2PA
а где ты об этом прочитал?
я тоже хочу !!!!
в инете куча примеров по использованию, но я не могу найти с описанием эти методов
иначе мне по каждой строке спрашивать придётся!!!!
Developer's Guide
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34678248
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На вот в том же порядке, что в той статье, что ты привел.

Создание экземпляра OpenOffice.org

Код: plaintext
1.
   Set oSOffice = CreateObject("com.sun.star.ServiceManager")
   Set oDesk = oSOffice.createinstance("com.sun.star.frame.Desktop")

Создание или открытие документа

Код: plaintext
1.
   Set oFile = oDesk.loadComponentFromURL("private:factory/scalc", "_blank",  0 , vArg())
   Set oSheets = oFile.getSheets()
Вставка нового листа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   oSheets.InsertNewByName strMySheetName,  0 

   If oSheets.Count >  1  Then 
      Do While oSheets.Count >  1 
         Set oSheet = oSheets.getByIndex(oSheets.Count -  1 )
         oSheets.RemoveByName (oSheet.Name)
      Loop
   End If

   Set oSheet = oFile.getSheets().getByName(strNomeRelat)
   Set oControl = oFile.getCurrentController()
   oControl.setActiveSheet oSheet

   oSheet.SetPropertyValue "CharFontName", "Arial"
   oSheet.SetPropertyValue "CharHeight",  10 
Запись данных в ячейку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   Set objCel = oSheet.getCellByPosition(MyCol,MyRow)

   Select Case TypeName(MyText)
   Case "String"
      If Left(MyText,  1 ) = "=" Then 
         objCel.setFormula MyText
      Else
         objCel.setString MyText
      End If
   Case "Double", "Integer", "Long"
      objCel.SetValue MyText
   End Select
Чтение данных из ячейки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   Set objCel = oSheet.getCellByPosition(MyCol,MyRow)
   oType = objCel.getType()
   Select Case oType
   Case  1 
      MyValue = objCel.getValue()
   Case  2 
      MyValue = objCel.getString()
   Case  3 
      MyValue = objCel.getFormula()
   End Select
Установка ширины строки, столбца

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   Set oRow = oSheet.GetRows().getByIndex(intRow)
      oRow.Width = varSize
или
      oRow.optimalHeight = True 'Autofit


   Set oCol = oSheet.getColumns().getByIndex(intCol)
      oCol.Width = varSize
или
      oCol.optimalWidth = True 'Autofit
Форматирование ячеек

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
   Set oRange = oSheet.getCellRangeByName(strRange)

   Dim oServiceManager As Object
   Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
   Dim oLocale As Object
   Set oLocale = oServiceManager.bridge_getstruct("com.sun.star.lang.Locale")
   Dim oFormats As Object
   Set oFormats = oFile.getNumberFormats()
   Dim lngFormatNum As Integer
   lngFormatNum = oFormats.queryKey(strNewFormat, oLocale, True) 
  If (lngFormatNum = - 1 ) Then 
    lngFormatNum = oFormats.AddNew(strNewFormat, oLocale)
    If (lngFormatNum = - 1 ) Then lngFormatNum =  0 
  End If
  
   oRange.NumberFormat = lngFormatNum

      objCel.SetPropertyValue "CharFontName", strFonte
      objCel.SetPropertyValue "CharHeight", intTamanho
 
      Select Case intAlignment
         Case  1 : objCel.SetPropertyValue "ParaAdjust",  0   'Left
         Case  2 : objCel.SetPropertyValue "ParaAdjust",  1   'Right
         Case  3 : objCel.SetPropertyValue "ParaAdjust",  2   'Justify Word Wrap
         Case  4 : objCel.SetPropertyValue "ParaAdjust",  3  'Center
      End Select

   objCel.SetPropertyValue "ShrinkToFit", True
   objCel.SetPropertyValue "IsTextWrapped", True

слияние

Код: plaintext
1.
2.
3.
   Dim oRange As Object
   Set oRange = oSheet.getCellRangeByName(strRange)
   oRange.Merge (True)
   oRange.ParaAdjust = intParaAdjust
границы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
   Dim oRange As Object
   Set oRange = oSheet.getCellRangeByName(strRange)
   Dim oTableBorder As Object
   Set oTableBorder = oSheet.TableBorder
    
   Dim oTBorder As Object
   Set oTBorder = oTableBorder.TopLine
   oTBorder.Color = lngColor
   oTBorder.OuterLineWidth = intLineWidth
   oTableBorder.TopLine = oTBorder
    
   Dim oBBorder As Object
   Set oBBorder = oTableBorder.BottomLine
   oBBorder.Color = lngColor
   oBBorder.OuterLineWidth = intLineWidth
   oTableBorder.BottomLine = oBBorder
    
   Dim oLBorder As Object
   Set oLBorder = oTableBorder.LeftLine
   oLBorder.Color = lngColor
   oLBorder.OuterLineWidth = intLineWidth
   oTableBorder.LeftLine = oLBorder
    
   Dim oRBorder As Object
   Set oRBorder = oTableBorder.RightLine
   oRBorder.Color = lngColor
   oRBorder.OuterLineWidth = intLineWidth
   oTableBorder.RightLine = oRBorder
    
   oTableBorder.IsTopLineValid = True
   oTableBorder.IsBottomLineValid = True
   oTableBorder.IsLeftLineValid = True
   oTableBorder.IsRightLineValid = True
    
   oRange.SetPropertyValue "TableBorder", oTableBorder

Печать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
   Dim oFamilies As Object   'Families Styles
   Dim oPageStyles As Object 'Page Styles
   Dim oPageStyle As Object  'Page Style in use
   Dim sNomesEstilos         'Style Names
   Dim oHeader As Object     'Header
   Dim oFooter As Object     'Footer
   Dim intCont As Integer    'Counter
    
   'Select Default Style
   Set oFamilies = oFile.getStyleFamilies()
   Set oPageStyles = oFamilies.getByName("PageStyles")
   If oPageStyles.hasByName("Default") = False Then 'There's no Default Style, so make it
      Set oPageStyle = oFile.createinstance("com.sun.star.style.PageStyle")
      oPageStyles.insertByName "Padrão", oPageStyle
   Else 'Default style exists, so select it to changes
      sNomesEstilos = oPageStyles.getElementNames()
      For intCont = LBound(sNomesEstilos) To UBound(sNomesEstilos)
         If sNomesEstilos(intCont) = "Default" Then
            Exit For
         End If
      Next intCont
      Set oPageStyle = oPageStyles.getByName(sNomesEstilos(intCont))
   End If
   oPageStyle.LeftMargin =  2000 
   oPageStyle.RightMargin =  500 
   oPageStyle.TopMargin =  1000 
   oPageStyle.BottomMargin =  1000 
    
   'Enable Header and Footer
   oPageStyle.HeaderIsOn = True
   oPageStyle.FooterIsOn = True
    
   'Header inicialization
   Set oHeader = oPageStyle.RightPageHeaderContent
    
   'Set Header botton border
   Dim oHBBorder As Object
   Set oHBBorder = oPageStyle.HeaderBottomBorder
   oHBBorder.Color = vbBlack
   oHBBorder.OuterLineWidth =  100 
   oPageStyle.HeaderBottomBorder = oHBBorder
    
   'Set Left Header
   oHeader.LeftText.String = "RC Software" 'Your program name
   oHeader.LeftText.Text.CharFontName = "Arial"
   oHeader.LeftText.Text.CharHeight =  8 
    
   'Set Center Header
   oHeader.CenterText.String = "Usuário: " & strLogin 'Logged user name
   oHeader.CenterText.Text.CharFontName = "Arial"
   oHeader.CenterText.Text.CharHeight =  8 
    
   'Set Right Header
   Dim oFieldPageNumber As Object 'Field Page Number
   Dim oFieldPageCount As Object  'Field Page Numbers
   Dim oHRText As Object          'Header Right Text to insert the field
   Dim oHRCursor As Object        'Header Right Cursor to insert the field
   Set oFieldPageNumber = oFile.createinstance("com.sun.star.text.TextField.PageNumber")
   Set oFieldPageCount = oFile.createinstance("com.sun.star.text.TextField.PageCount")
   Set oHRText = oHeader.RightText
   Set oHRCursor = oHRText.CreateTextCursor()
   oHeader.RightText.Text.CharFontName = "Arial"
   oHeader.RightText.Text.CharHeight =  8 
   oHRText.insertstring oHRCursor, "Fls.:", False
   oHRText.insertTextContent oHRCursor, oFieldPageNumber, False
   oHRText.insertstring oHRCursor, "/", False
   oHRText.insertTextContent oHRCursor, oFieldPageCount, False
      
   'Insert all Header informations into sheet
   oPageStyle.RightPageHeaderContent = oHeader

   'Footer initialization
   Set oFooter = oPageStyle.RightpageFooterContent
    
   'Set Top Footer border
   Dim oFTBorder As Object
   Set oFTBorder = oPageStyle.FooterTopBorder
   oFTBorder.Color = vbBlack
   oFTBorder.OuterLineWidth =  100 
   oPageStyle.FooterTopBorder = oFTBorder
    
   'Set Left Footer
   oFooter.LeftText.String = "Gerado em " & Format(Now, "dd/mm/yyyy - hh:mm:ss")
   oFooter.LeftText.Text.CharFontName = "Arial"
   oFooter.LeftText.Text.CharHeight =  8 
    
   'Set Center Footer
   oFooter.CenterText.String = "Rodapé Centro"
   oFooter.CenterText.Text.CharFontName = "Arial"
   oFooter.CenterText.Text.CharHeight =  8 
    
   'Set Right Footer
   Dim oFieldFileName As Object  'Field File Name
   Dim oFRText As Object         'Footer Right Text to insert a field
   Dim oFRCursor As Object       'Footer Right Cursor to insert a field
   Set oFRText = oFooter.RightText
   Set oFRCursor = oFRText.CreateTextCursor()
   Set oFieldFileName = oFile.createinstance("com.sun.star.text.TextField.FileName")
   oFieldFileName.SetPropertyValue "FileFormat",  0  'File name with path
   oFRText.insertstring oFRCursor, "Arq.:", False
   oFRText.insertTextContent oFRCursor, oFieldFileName, False
   oFooter.RightText.Text.CharFontName = "Arial"
   oFooter.RightText.Text.CharHeight =  8 
    
   'Insert all Footer informations into sheet
   oPageStyle.RightpageFooterContent = oFooter

   oPageStyle.isLandscape = False
   oControl.ShowGrid = False
   oFile.print(vArg)
Сохранение документа, закрытие докумета и офиса

Код: plaintext
1.
2.
3.
4.
5.
6.
Set Args( 0 ) = oServ.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
Args( 0 ).Name = "FilterName"
Args( 0 ).Value = "MS Excel 97"
 
Doc.StoreToURL "file:///C:/MyReport.xls", Args
Doc.Close (True)
Doc.Terminate()
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34679014
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такое не катит

.getCellRangeByName("строка").getCellAddress().Row
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34679242
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели нельзя использовать раннее связывание ?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34679362
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему нельзя? Сделай ActiveX и связывай. В SDK есть пример.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34679546
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
взято из sdk

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim objServiceManager As Object
Dim objDesktop As Object
Dim objDocument As Object
Dim objEventListener As Object
Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
Set objDesktop = objServiceManager.createInstance("com.sun.star.frame.Desktop")
'Open a new empty writer document
Dim args()
Set objDocument = objDesktop.loadComponentFromURL("private:factory/swriter", "_blank",  0 , args)
'create the event listener ActiveX component
Set objEventListener = CreateObject("VBasicEventListener.VBEventListener") ---активикс не може открыть обект
'register the listener with the document
objDocument.addEventListener objEventListener

чё у меня не правильно?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34680206
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты скомпилировал VBasicEventListener.dll?

Попробуй со стандартным из оффиса:

Library SO_ACTIVEXLib
C:\Program Files\OpenOffice.org 2.2\program\so_activex.dll
so_activex 1.0 Type Library

Sub addEventListener(xListener As Object)

С учетом вот этого -

Вопрос:
By using OOo ActiveX component (so_activex.dll) it seems possible to
embed OOo. The problem is that very few methods and properties are
exposed and there is a lack of documentation about API on how interact
with the component.

Ответ:
There is no type library and the IDispatch::GetTypeInfo is not supported
as well. That is, you need dynamically invoke methods.
For C++ this means calle GetIDsOfNames before every Invoke
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34680306
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТы скомпилировал VBasicEventListener.dll?

гы-гы-гы
чем, из чего...

автор
Library SO_ACTIVEXLib
C:\Program Files\OpenOffice.org 2.2\program\so_activex.dll
so_activex 1.0 Type Library

в референсах подключил...

всё равно ничего не получается

я фигею от информации., особенно для VBA.
скачал SDK, и ничего, чтоб заработало...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34680369
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчем, из чего...

Тогда - ГЫ! - раз 30...

Информации нет и не будет. Все своими ручками и своей головой. dll-ку скомпилированную - из примера - я конечно могу выложить, но проку тебе от нее не будет.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34680395
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set ExlDb = CreateObject("com.sun.star.ServiceManager")
Set Desktop = ExlDb.createInstance("com.sun.star.frame.Desktop")
Set Document1 = Desktop.loadComponentFromURL("file:///C:/NL/накл2.xls", "_blank", 0, OpenParams())
Set WrkSht = Document1.CurrentController.ActiveSheet
Set oSheets = Document1.getSheets()
Set oSheet = oSheets.getByIndex(0)
With WrkSht

.getCellRangeByName("грузоотп.... работает
.GetRows.removeByIndex 20, 6 работает
d= .getCellRangeByName("строка").getCellAddress().Row - это уже не тянет

а как и где можно узнать методы и свойства?
в родных MS точку ставишь и список смотри,
точку остановки поставил и можно посмотреть ещё кучу инфы.
а тут вселепую тыкаешься....
ну есть ведь кто-то, ведь делают наверное. ААААААААААА!!!!!!!!!!
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34680672
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяd= .getCellRangeByName("строка").getCellAddress().Row - это уже не тянет

Специально проверил, всё работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    Dim OpenParams()
    
    Set ExlDb = CreateObject("com.sun.star.ServiceManager")
    Set Desktop = ExlDb.createInstance("com.sun.star.frame.Desktop")
    Set Document1 = Desktop.loadComponentFromURL("file:///C:/test.xls", "_blank",  0 , OpenParams)
    Set WrkSht = Document1.CurrentController.ActiveSheet
    With WrkSht
        MsgBox "Номер строки - " & .getCellRangeByName("грузоотправитель").getCellAddress().Row +  1 
    End With
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34681022
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2PA
большущее спасибо!!!
у меня тоже заработало, только на другой машине.
это уже проще (наверное) найти несколько отличий....
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34682831
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё-таки придётся в режиме ворос-ответ познавать openoffice.

как организовать копрование вставка ячеек?

такое не проходит


Код: plaintext
1.
2.
3.
' move the selected range to new position
oSheet.moveRange( oAddress, oRange ) 
' copy the selected range to new position
oSheet.copyRange( oAddress, oRange ) 
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34684574
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как копировать и вставлять ?
ничего не могу найти

тут для фокспро
http://forum.foxclub.ru/read.php?29,275276
но как переделать на VBA?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34685802
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну кто-нить может помочь?????
ведь так хорошо должно получиться с бесплатным 2007 рантаймом да если ещё sql2005 использовать...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34687866
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что обозначает эта ошибка

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
---------------------------
Microsoft Access
---------------------------
InterfaceOleWrapper_Impl::Invoke : 
[automation bridge]UnoConversionUtilities<T>::createOleObjectWrapper 
The VARIANT does not contain an object type! 
---------------------------
ОК   
---------------------------

на эту строку

Код: plaintext
oSheet.copyRange oAddress, oRange
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34692624
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне удалось добавить/скопировать строки (строки , столбцы нумеруются в openoffice_calc с 0)
Код: plaintext
1.
2.
3.
4.
            .GetRows.insertByIndex 19, 1  - вставляем 1 строку после 19 строки
            Set loRangeAddress = .GetCellRangeByPosition(0, 18, 15, 18).GetRangeAddress() - выбираем диапазон для копирования столбец начала, строка начала, столбец конца, строка конца
            Set loCellAddress = .GetCellByPosition(0, 19).GetCellAddress() - выбираем куда вставлять столбец, строка
           .CopyRange loCellAddress, loRangeAddress - вставка (точнее замена того что было на то что есть в выделенном диапазоне)


наверно возможны и другие варианты...

и вопрос

в экселе возможно такое
Код: plaintext
1.
.Range("наименование").CopyFromRecordset rst

быстро и коротко.
а openoffice_calc есть такое?
нашёл только в цикле по ячейкам. (наверно плохо искал...)
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34694528
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадябыстро и коротко.
а openoffice_calc есть такое?
нашёл только в цикле по ячейкам. (наверно плохо искал...)
зачем цикл по ячейкам? можно массив данных сохранить в диапазон (как и в Excel) - будет быстрее на порядок - поищите по нашему форуму по "вывод в Excel" - в OOo принцип такой же:
набор записей переводится в массив, потом все это сохраняется в диапазон ячеек, совпадающий по размеру с этим массивом.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34694595
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема в том, что я не нашёл ничего, что может подсказать.
я и хочу по анологиии как с экселем, но....
дело в методах самих командах, а где их помотреть ?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34697478
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как передать в фунцию ссылку на массив?
т.е. адрес массива в памяти.

типа как на VFP

oRange = poSheet.getCellRangeByPosition(pCol,pRow,pCol+nCols-1,pRow+nRows-1)
oRange.SetDataArray(@aDataArray)

пчему-то с openoffice много работают на VFP...
и куча примеров есть.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34701505
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34707600
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для тех кому интересно


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim arr As Variant
arr = rst.GetRows
Dim oCellRange As Object

' можно так, если диапазон постоянен
Set oCellRange = .getCellRangeByName("я") 
'или так для общего случая (нада учесть что нумерация ячеек идёт с 0
Set oCellRange = .getCellRangeByPosition( 1 ,  18 , UBound(arr,  1 ) +  1 ,  18  + UBound(arr,  2 ))
oCellRange.setDataArray (arr)
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34717166
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжаю осваивать.

Код: plaintext
1.
2.
3.
Dim fileProp As Variant

fileProp = CreateProperties("Password", "Arthur1987", "Hidden", True)
The list in CreateProperties must have an even number of arguments: Name, Value, Name, Value, and so on for each property to be created.


помогите написать CreateProperties, а то в голове всё смешалось.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34717174
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CreateProperties на VBA
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34728888
&lt;&gt;
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторCreateProperties на VBA
я так понял, что основная проблема с открытием "по тихому", вот че нарыл и проверил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Sub openDoc()
Rem
Rem Load an existing writer document, with opening parameters
Rem
  Dim oSM, ODesk As Object 'root object from OOo API
  Dim oDoc As Object       'The document to be opened
  Dim OpenPar( 2 ) As Object 'a Visual Basic array, with 3 elements
'Instanciate OOo : the first line is always required from Visual Basic for OOo
  Set oSM = CreateObject("com.sun.star.ServiceManager")
  Set ODesk = oSM.createInstance("com.sun.star.frame.Desktop")
  
  Set OpenPar( 0 ) = MakePropertyValue("ReadOnly", True)
  Set OpenPar( 1 ) = MakePropertyValue("Password", "")
  Set OpenPar( 2 ) = MakePropertyValue("Hidden", True)

  Set oDoc = ODesk.LoadComponentFromURL("file:///C:/test.xls", "_blank",  0 , OpenPar)

  MsgBox oDoc.sheets.Count
   
End Sub

 Function MakePropertyValue(cName, uValue) As Object
   
  Dim oPropertyValue As Object
  Dim oSM As Object
   
  Set oSM = CreateObject("com.sun.star.ServiceManager")
  Set oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
  oPropertyValue.name = cName
  oPropertyValue.value = uValue
     
  Set MakePropertyValue = oPropertyValue

End Function
А2002 + ОпенОфис 2.0.4
Доп. референсов никаких не установлено и ничего дополнительно не качал.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #34729686
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо <>
это подходит, соответственноскорость заполнения возросла
перевод в видимое где-то я видел, думаю справлюсь

для рантайма ещё Ltrim в runtime
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Акес и ОpenOffice
    #37633371
Wallaby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадядля тех кому интересно


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim arr As Variant
arr = rst.GetRows
Dim oCellRange As Object

' можно так, если диапазон постоянен
Set oCellRange = .getCellRangeByName("я") 
'или так для общего случая (нада учесть что нумерация ячеек идёт с 0
Set oCellRange = .getCellRangeByPosition(1, 18, UBound(arr, 1) + 1, 18 + UBound(arr, 2))
oCellRange.setDataArray (arr)



Добрый день. Аналогичная задача - вывести результат запроса (рекордсет) в OpenOffice Calc вместо привычного Excel'a. Вышеприведенный способ не работает. Выдается ошибка

Run-time error '1001':
com.sun.star.uno.RuntimeException:

и на этом всё.

Есть ли еще какой-то способ выгрузки запроса в Calc, кроме как через массив?
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #37633954
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я могу вспомнить - только чере массив.
мне удалось создать заполнение накладной торгг12 и акса в calс
всё роботает но это было давно...........
и там была версия опенофиса 2.х.х
счас уже 3 и нескольких разработчиков приэтом
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #37634448
Wallaby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадянасколько я могу вспомнить - только чере массив.
мне удалось создать заполнение накладной торгг12 и акса в calс
всё роботает но это было давно...........
и там была версия опенофиса 2.х.х
счас уже 3 и нескольких разработчиков приэтом

да, у меня стоит версия 3.3.
И выводить массив отказывается наотрез без объяснения причин (RuntimeException, и точка).

Неужели единственная альтернатива - выводить циклом по записям?!
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #37634625
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wallaby,

поспрашивай на форумах опенофиса, там нормально помогают.
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #37635612
Wallaby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,

что же делать. Спасибо, поищу...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Акес и ОpenOffice
    #39288043
ккэп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Помогите пожалуйста разобраться с тем, что бы загрузить опен документ в акцес 2010. Имеется файл как в примере, в который происходит импорт из сторонней программы. Необходимо загрузить указанные сведения в акцесс. Причем если смотреть через open writer, то все таблицы имеют заголовок. Т.е. необходимо в акцесе собрать таблицу в которую бы проставлялся код заказа и все данные из нижней таблицы.

Перерыл все форумы не могу найти как правильно загрузить его в акцесс, если провалиться тотел командером в файл опен офиса, то получается что все данные хранятся в файле content.xml, но не могу понять как его разложить на то что требуется. Пробовал стандартный импорт, он создает кучу таблиц, но загружает в порядке который потом не могу обработать из-за того, что он импортирует всё в один столбик, и не понятно сколько событий происходили у одного заказа.

пробовал загрузка xml однако как-то не сильно вышло..
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288047
_гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ккэп,

сохранить файл в приемлемом для Аксесс формате - .mdb, .accdb... - позволяет? Есть ещё LibreOffice - более развитый проект...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288049
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_гурДЕсть ещё LibreOffice - более развитый проект...
Ну расскажите нам "недоумкам" про LibreOffice
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288168
ккэп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_гурД,

Нет, такой возможности нет именно поэтому и есть необходимость корректного переноса в акцесс
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288225
_гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ккэп,

http://www.sql.ru/forum/968385-214/lesenka-s-pravilami-osnovana-10-sen-12-off

Попробуйте проделать экспорт-импорт через Azure, если у вас только таблицы и запросы. Если также и код, то наверно не получится
(я сейчас проверить не могу - нет Виндовса).
По ссылке есть обсуждение на Лестнице. Не знаю, получилось что у Саныча или нет, давно на связь не выходил...
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288270
ккэп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_гурД,

Спасибо, посижу почитаю про эту приблуду. А ветка на которую дали ссылку просто флуд)
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39288484
ккэп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитал на сколько смог понять разобрался что только за денежку и при установке доп ПО. Этот вариант не подходит. Безопасность не пропустит установку из вне, а делать на домашнем и постоянно носить на работу полуфабрикаты не вариант
...
Рейтинг: 0 / 0
Акес и ОpenOffice
    #39299203
ккэп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ккэп,

Ну вообщем решил данную проблему.
...
Рейтинг: 0 / 0
74 сообщений из 74, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Акес и ОpenOffice
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]