使用Powershell将数据表转换为Excel

时间:2019-01-21 14:41:23

标签: excel powershell datatable

我有与本文所述类似的问题:SQL extract data to Excel using Powershell

我需要将数据从SQL Server提取到Excel。 我有2个有效的解决方案,但每个都有一些问题:

  • 使用ConvertTo-CSv和Clip像上述文章中那样复制数据。匈牙利的民族字符显示有误。经过csv转换后,字符很好。

  • 逐行,逐单元复制数据。该解决方案很慢,但是匈牙利的民族字符显示良好。

另一种解决方法是使用ADODB.recordset,因为excel具有CopyFromRecordset方法。在那种情况下,我不知道正确的语法:

  • 在VBA中:range(“ 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?

0 个答案:

没有答案