powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек
1 сообщений из 1, страница 1 из 1
OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек
    #37909290
timursmeta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Помогите решить проблему. Необходимо скопировать с заданным форматом диапазон ячеек из одного документа 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
1 сообщений из 1, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / OpenOffice. Copy диапазон ячеек из одного докумаента Calc в другой с форматом ячеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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