当我将货币格式分配给 Excel 工作表中的特定范围时,我遇到了问题。我用来设置格式的powershell中的代码如下:
$LC_ws_tab.range("B1 :B5").NumberFormat = "_(€* #.##0,00_);_(€* (#.##0,00);_(€* ""-""??_);_(@_)"
我觉得奇怪的是 - 如果我运行代码,我会看到下面的屏幕截图 (欧元符号 = â,-)。
但是,当我通过“运行选定代码”第二次运行代码时,当 excel 文档仍然打开时,会出现一个欧元符号。有谁知道为什么我有这个结果?
完整的示例代码如下所示:
function Excel_new {
$object = New-Object -ComObject "Excel.Application"
$object | Add-Member -MemberType ScriptMethod -Name FullQuit -Value {Excel_FullQuit}
$object
}
function Excel_FullQuit {
while ( $this.Workbooks.Count -gt 0 ) {
$this.Workbooks.Item(1).Close()
}
$this.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($this)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
Stop-Process -processname EXCEL
}
$Excel = Excel_new
$Excel.Visible = $true
$Excel.displayalerts = $false
$path = "C:\somefolder\test.xlsx"
$LC_wb = $Excel.Workbooks.Open($path)
$LC_ws_tab = $LC_wb.Worksheets.Add()
$LC_ws_tab.name = "test"
# $LC_ws_tab.range("A1 :A5").NumberFormat = "#.##0,00 € "
# $LC_ws_tab.range("B1 :B5").NumberFormat = "€ #.##0,00"
# $LC_ws_tab.range("C1 :C5").NumberFormat = "0,00 % "
$LC_ws_tab.Cells.Item( 1 , 1 ) = 49999
$LC_ws_tab.Cells.Item( 1 , 2 ) = 1234.879
$LC_ws_tab.Cells.Item( 1 , 3 ) = 1234.879
$LC_ws_tab.range("B1 :B5").NumberFormat = "_(€* #.##0,00_);_(€* (#.##0,00);_(€* ""-""??_);_(@_)"