0

当我将货币格式分配给 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);_(€* ""-""??_);_(@_)"
4

0 回答 0