У меня проблема, аналогичная описанной в этой статье: Извлечение данных SQL в Excel с помощью Powershell
Мне нужно извлечь данные с сервера SQL в Excel.
У меня есть 2 рабочих решения, но у каждого есть какая-то проблема:
Другим решением может быть использование ADODB.recordset, поскольку в Excel есть метод CopyFromRecordset. В этом случае я не знаю правильный синтаксис:
- в VBA: диапазон ("a1"). CopyFromRecordset rs
- в PowerShell я пытался $ WorkSheet.Range ("a1"). CopyFromRecordset $ ($ rs)
.
$rs = new-Object -COMObject ADODB.Recordset
$rs.fields.append("col1",200,128)
$rs.open()
$rs.AddNew()
$rs.fields.item("col1").value="abcé"
$rs.fields.Item(0).Value
$Excel=New-Object -ComObject Excel.Application
$Excel.visible=1
$wb = $Excel.Workbooks.Add()
$WorkSheet = $wb.Worksheets.item(1);
$WorkSheet.Range("a1").CopyFromRecordset $($rs)
Код для теста буфера обмена:
'abcé' | clip
Get-Clipboard
Expected result: abcé
Actual result: abc?