首页 > 解决方案 > 使用excel在powershell中打开SLK文件不保留公式

问题描述

我试图用 excel (office 365) 读取一个 SLK 文件。SLK 文件有两个单元格。一个包含“硬编码”值,另一个包含“5+LC(-1)”的公式。通过使用 excel 读取 SLK,它工作正常,我可以看到公式“5+LC(-1)”

现在,我想做一个 powershell 脚本来读取这个 SLK 文件。这是我所做的:

$FilePath = "C:\tex33.slk"

$excel = New-Object -comobject Excel.Application
$excel.Visible = $false
$excel.Application.DisplayAlerts = $false
$workbook = $excel.Workbooks.Open($FilePath)

# Print the formula
$workbook.sheets.item(1).activate()
$WorkbookTotal=$workbook.Worksheets.item(1)
$value = $WorkbookTotal.Cells.Item(1, 2).Formula2R1C1Local
$value

$workbook.Close()

我希望5+LC(-1)在变量中看到公式$value。但是,此变量包含此公式的结果,而不是公式的结果。你知道为什么我在 powershell 中看不到公式,而我在 Excel 上可以看到吗?另请注意,如果我对 xlsx 文件而不是 SLK 文件执行相同操作,则所有操作都按预期工作($value包含公式)。

您是否认为这是因为我没有安装 PI Software,如手动打开 excel 文件允许公式运行,使用 VBScript 或 PowerShell 或 Python 的 win32com 打开 excel 文件没有?在这种情况下,我不明白为什么 Excel 成功地看到我的公式,而 powershell 失败了。

SLK文件很简单(可以看公式5+RC[-1]):

ID;PMP
F;DG0G10
B;Y1;X2
C;X1;K1
C;X2;E5+RC[-1];K6
W;N1;A1 1;C7 0 7
E

标签: excelpowershelloffice365

解决方案


推荐阅读