我是 PowerShell 新手,似乎无法弄清楚为什么下面代码中的第一种方法不起作用,而第二种方法(已注释掉)起作用。
我正在尝试将数据库记录集的结果写入 Excel 文件,因此我需要一个可动态扩展的数组。我知道如何使用第一种类型的数组来做到这一点,但不知道如何使用第二种类型。
如果出现以下情况,我的问题将得到解决:
- 你知道如何动态扩展第二种类型的数组
编辑:正如这里提到的http://powershell.com/cs/blogs/tips/archive/2008/12/05/multidimensional-arrays.aspx这是不可能的。 - 知道如何将第一种类型的数组写入范围
- 编辑:或者,您知道将第一种类型的数组转换为第二种类型的有效方法。
编码:
#need this to work around bug if you have a non us-locale and English excel: http://support.microsoft.com/default.aspx?scid=kb;en-us;320369
[System.Threading.Thread]::CurrentThread.CurrentCulture = "en-US"
# This doesn't work
$values = @(('test1','test2'),('test3','test4'))
# This works
<#
$values = New-Object 'object[,]' 2,2
$values[0,0] = 'test1'
$values[0,1] = 'test2'
$values[1,0] = 'test3'
$values[1,1] = 'test4'
#>
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $False
$xls_workbook = $excel.Workbooks.Add()
$range = $xls_workbook.sheets.item(1).Range("A1:B2")
$range.Value2 = $values
$xls_workbook.SaveAs($MyInvocation.MyCommand.Definition.Replace($MyInvocation.MyCommand.Name, "") + "test.xlsx")
$excel.Quit()