首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PowerShell -将CSV转换为XLSX

PowerShell -将CSV转换为XLSX
EN

Stack Overflow用户
提问于 2015-06-15 18:03:17
回答 1查看 3.9K关注 0票数 2

我在这里找到了这个剧本,请帮助我更好地理解这一点。

  1. 剧本的整个"gps“部分是为了什么?
  2. 这个脚本的哪个部分覆盖了我原来的CSV并复制到PC的任务管理器列表中?过程。
  3. 这是干什么的,为什么是51?($xlOut,51)

我去找“新对象”(New Object-com),却找不到我想要找到的东西.没有解释-com做了什么,也没有提供一个参数列表和-com。我只找到了-comObject。

代码语言:javascript
运行
复制
(gps excel -ErrorAction SilentlyContinue).count
$csvpath="C:\path\to\file.csv"
gps | Export-Csv $csvpath -NoTypeInformation
$xl=New-Object -com "Excel.Application" 
$wb=$xl.workbooks.open($csvpath)
$xlout=$csvpath.Replace('.csv','.xlsx') 
$wb.SaveAs($xlOut,51) 
$xl.Quit()
(gps excel -ErrorAction SilentlyContinue).count
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-15 18:33:50

脚本的整个"gps“部分是什么?

脚本开始和结束时的两行(gps excel -ErrorAction SilentlyContinue).count行计算运行的Excel可执行文件的数量。gpsget-process的缩写别名。您可以通过执行返回的help gps来了解更多信息:

名字 获取过程 提要 获取在本地计算机或远程计算机上运行的进程。

这两行只用于计数正在运行的Excel进程并将值输出到控制台。它们不影响脚本的其余部分,似乎是对脚本的原始作者的某种理智检查。

这个脚本的哪个部分正在覆盖我原来的CSV并在PC的任务管理器列表中复制?进程.

下一部分:

代码语言:javascript
运行
复制
$csvpath="C:\path\to\file.csv"
gps | Export-Csv $csvpath -NoTypeInformation

这将获取所有正在运行的进程的列表,并将其作为CSV文件导出到$csvpath。这将在每次运行$csvpath时覆盖该文件。

$xl=New-Object -com "Excel.Application"行告诉PowerShell启动Excel.Application实例。因为Excel是COM对象(或者更准确地说,是运行在自己进程中的COM自动化服务器),所以-com开关告诉PowerShell它的ProgID是什么。如果您没有-com (或者给它命名为ComObject)开关,那么PowerShell就会停止寻找要实例化的托管(.NET)类型。

这是做什么的,为什么51?($xlOut,51)

台词:

代码语言:javascript
运行
复制
$xlout=$csvpath.Replace('.csv','.xlsx') 

.csv替换$csvpath中的.xlsx扩展名,从而生成新的文件名C:\path\to\file.xlsx

代码语言:javascript
运行
复制
$wb.SaveAs($xlOut,51) 

这将告诉Excel将工作簿保存在文件$xlout中。51参数通常是枚举类型的值。在本例中,它来自XlFileFormat枚举,特别是XlFileFormat.xlOpenXMLWorkbook

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30851971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档