excel - 通过 PowerShell 将 .odc 文件导入 Excel
问题描述
我在 excel 中创建了一个 PowerQuery,它从 API 获取数据、修改数据并将其呈现在表格中。我已将 PowerQuery 导出到一个.odc
名为Query - Singles - Template.odc
.
我还有一个 PowerShell 脚本,它可以在需要的地方动态创建 excel,以及获取.odc
模板、替换 API URL 并.odc
为每个创建的 excel 创建一个新的。
我尝试主要将其导入.odc
到创建的 excel 中,并且它按预期工作。但是我找不到.odc
通过 PowerShell 脚本将这些文件导入 excel 的方法。
PowerShell 脚本:
$Excel = New-Object -ComObject excel.application
$Excel.DisplayAlerts = $False
$Excel.visible = $False
$WorkBook = $Excel.Workbooks.Add()
$WorkSheet = $WorkBook.worksheets.item(1)
$WorkSheet.name = "data"
((Get-Content -path "$Path\Query - Singles - Template.odc" -Raw) -replace "TempSetCode",$Set) | Set-Content -Path "$Path\$Set\Query - Singles - $Set.odc"
### Code to import .odc file into excel
$WorkBook.SaveAs("$SetPath\$Set-main-$ReleaseDate.xlsx", 51)
$WorkBook.Close($True)
$Excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkSheet)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkBook)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
解决方案
我解决了这个问题,不是通过将.odc
文件导入excel,而是通过将.odc
文件打开到excel然后保存该文件。
$InFile = Get-Item("$Path\$Set\Query - Singles - $Set.odc")
$Excel = New-Object -ComObject excel.application
$Excel.DisplayAlerts = $False
$Excel.visible = $False
$WorkBook = $Excel.Workbooks.Open($InFile.FullName)
$WorkSheet = $WorkBook.worksheets.item(1)
$WorkSheet.name = "data"
$WorkBook.RefreshAll()
$WorkBook.SaveAs("$SetPath\$Set-main-$ReleaseDate.xlsx", 51)
$WorkBook.Close($True)
$Excel.Quit()
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkSheet)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($WorkBook)
[void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
推荐阅读
- c++11 - 错误:从“基本类型”转换为非标量类型“NamedType”
' 请求 - python-3.x - 将一个字符串拆分为多个列表
- windows - 即使在管理员帐户下,PowerShell USMT 错误 26 也无法访问 Windows 文件
- python - Python 3 - 嵌套循环
- python - 如何使用python制作行星的轨道
- python - 在python中删除变量后如何释放内存?
- ios - Xcode 10.2.1 不支持 ios 12.3.1 用于部署/测试目的?
- kotlin - 对 kotlin 中的小型私有函数使用 inline 关键字?
- ios - UIView 功能错误
- python - Ansible + Ubuntu 18.04 + MySQL =“需要 PyMySQL(Python 2.7 和 Python 3.X)或 MySQL-python(Python 2.X)模块。”