Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек / 1 сообщений из 1, страница 1 из 1
08.08.2012, 17:05
    #37909290
timursmeta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек
Всем привет! Помогите решить проблему. Необходимо скопировать с заданным форматом диапазон ячеек из одного документа Calc в другой.

Метод SetDataArray копирует только значения. Ниже код это демонстрирует.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub CopyRangeValue
Dim aPath As String
Dim aDocSrc As Object
Dim aSheetSrc As Object
Dim aRngSrc As Object

Dim aDocDst As Object
Dim aSheetDst As Object
Dim aRngDst As Object

  aDocSrc   = ThisComponent
  aSheetSrc = aDocSrc.Sheets.getByName("SheetSrc")
  
  aPath     = GetDir(aDocSrc) & "Test.ods"
  aDocDst   = OpenDoc(aPath, False)
  aSheetDst = aDocDst.Sheets.getByName("SheetDst")
  
  aRngSrc = aSheetSrc.GetCellRangeByName("A10:E12")
  aRngDst = aSheetDst.GetCellRangeByName("A10:E12")
  
  aRngDst.SetDataArray(aRngSrc.getDataArray())	
   
End sub



Метод CopyRange копирует все как надо, но работает только в пределах одного документа Calc. А необходимо скопировать из одного, а вставить в другой документ.
Код: vbnet
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.
Sub CopyRange
Dim aPath As String
Dim aDocSrc As Object
Dim aSheetSrc As Object
Dim aRngAddressSrc As Object

Dim aDocDst As Object
Dim aSheetDst As Object
Dim aRngAddressDst As Object

Dim a1 As Object

  aDocSrc   = ThisComponent
  aSheetSrc = aDocSrc.Sheets.getByName("SheetSrc")
  
  aPath     = GetDir(aDocSrc) & "Test.ods"
  aDocDst   = OpenDoc(aPath, False)
  aSheetDst = aDocDst.Sheets.getByName("SheetDst")
  
  aRngAddressSrc = aSheetSrc.GetCellRangeByName("A10:E12").GetRangeAddress()
  aRngAddressDst = aSheetDst.GetCellByPosition(0, 20).GetCellAddress()
  
  aDocDst.GetCurrentController.ActiveSheet = aSheetDst
  
  aSheetSrc.CopyRange(aRngAddressDst, aRngAddressSrc)
                  
End sub



Кто нибудь сталкивался с токай проблемой? Подскажите хотя бы в какую сторону копнуть...(((
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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