RUS  ENG 

Экспорт ответа SQL запроса в LibreOffice Calc(.ods)

Страницы: 1
RSS
Экспорт ответа SQL запроса в LibreOffice Calc(.ods)
 
Как экспортировать ответ SQL запроса в LibreOffice Calc? Версия Zulu 10.0.0.8483u.
 
Цитата
написал:
Как экспортировать ответ SQL запроса в LibreOffice Calc? Версия Zulu 10.0.0.8483u.
Если программно, то сейчас только в csv или dbf. Текст потом можно в офисе открыть
 
Цитата
написал:
Цитата
написал:
Как экспортировать ответ SQL запроса в LibreOffice Calc? Версия Zulu 10.0.0.8483u.
Если программно, то сейчас только в csv или dbf. Текст потом можно в офисе открыть
Спасибо. Открыть текстовой файл в офисе можно, но хотелось бы, чтобы конечный пользователь не морочил себе голову лишними действиями (пускай даже такими простыми). Из основного запроса можно экспортировать в .ods, будет ли это реализовано из SQL в будущем?
 
Цитата
написал:
Цитата
написал:
Цитата
написал:
Как экспортировать ответ SQL запроса в LibreOffice Calc? Версия Zulu 10.0.0.8483u.
Если программно, то сейчас только в csv или dbf. Текст потом можно в офисе открыть
Спасибо. Открыть текстовой файл в офисе можно, но хотелось бы, чтобы конечный пользователь не морочил себе голову лишними действиями (пускай даже такими простыми). Из основного запроса можно экспортировать в .ods, будет ли это реализовано из SQL в будущем?
Доделаем
 
Решил задачу через макрос. Вывод запроса в LibreOffice Calc

Sub Libre
Set L1=Zulu.ActiveMapDoc.Layers.Active
Set Res12=L1.ExecSQL("SELECT DISTINCT[ty_FIO],[ty_Q],[eks_no] WHERE typeid=2 AND [ty_FIO] IS NOT NULL")

Set oSM = CreateObject("com.sun.star.ServiceManager")
Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

Dim arg()
Set wb = oDesk.loadComponentFromURL("private:factory/scalc","_blank", 0, arg)
Set oSheet = wb.CurrentController.ActiveSheet

oSheet.getCellByPosition(2, 2).String = "Заказчик"
oSheet.getCellByPosition(3, 2).String = "Расход"
oSheet.getCellByPosition(4, 2).String = "Архивный номер"

Set objRecordSet=Res12.DataSetrow=3
Do Until objRecordSet.EOF
For i = 1 To objRecordSet.FieldCount
'objWorksheet.Cells(row, i+1).Value = objRecordSet.FieldDisplayValue(i - 1)
oSheet.getCellByPosition(i+1,row).String=objRecordSet.FieldDisplayValue(i-1)
Next
row = row + 1
objRecordSet.MoveNext
Loop


msgBox "Выполнено"
end sub
Изменено: Reidenschi - 07.12.2023 10:48:13
 
Вот еще полезный ресурс где Вы можете посмотреть различные методы работы с LibreOffice Calc для написания макросов на VBScript - https://help.72to.ru/attachments/download/129/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2...
Страницы: 1