当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 PowerShell 中将 XLSX 转换为 CSV [3 种方法]

作者:精品下载站 日期:2024-12-14 05:29:40 浏览:13 分类:玩电脑

在 PowerShell 中将 XLSX 转换为 CSV [3 种方法]


[玩转系统] 在 PowerShell 中将 XLSX 转换为 CSV [3 种方法]

使用以下方法可以轻松将 xlsx 文件转换为 csv

在转换文件之前,请确保您的PowerShell以管理模式打开,并且执行策略不应设置为Restricted

检查执行策略:

Get-ExecutionPolicy

输出 :

Set-ExecutionPolicy Restricted

在上面的代码中,我们使用Get-ExecutionPolicy命令检查执行策略是否设置为Restricted,发现设置为受限模式,如图输出。所以现在,我们的工作是将其设置为RemoteSigned。因此,为此,我们运行以下命令将其设置为 RemoteSigned 并重新检查。

设置执行策略:

Set-ExecutionPolicy RemoteSigned
Get-ExecutionPolicy

输出 :

RemoteSigned

由于执行策略现已更改为 RemoteSigned,因此可以使用以下方法将 xlsx 文件轻松转换为 csv 文件。

使用 ImportExcel 模块

要在 PowerShell 中将 XLSX 转换为 CSV:

  • 导入ImportExcel模块
  • 使用Import-excelcmd读取xlsx并将其转换为类似表格的自定义对象。
  • 将表(如自定义对象)传输到 Export-Csv 以将其转换为 CSV 文件。

使用导入Excel模块:

Import-Module -Name ImportExcel
$data = Import-Excel -Path "C:\path\to\file.xlsx"
$data | Export-Csv -Path "C:\path\to\output.csv" -NoTypeInformation

Import-Module 用于导入 ImportExcel 模块。 Import-Excel cmdlet 用于从指定的 Excel 文件导入数据,而 Export-Csv cmdlet 将数据导出到给定的 CSV 文件。

我们导入了 ImportExcel 模块,并将 Excel 文件的数据加载到名为 data 的 PowerShell 变量中。然后将正确的路径指定为xlsx文件的位置;之后,将 data 导出到 csv 文件,不包含类型信息,并提供文件名以及文件所在的路径。然后打开指定位置并获取新的 csv 文件作为输出。

使用 Excel.Application COM 对象

要在 PowerShell 中将 xlsx 转换为 csv:

  • 创建 Excel.Application 类型的对象
  • 使用open()方法将excel文件读入工作簿。
  • 使用 SaveAs() 方法将文件保存为 csv,方法是传递 6,因为它代表 csv 格式。

使用 Excel.Application COM 对象:

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open("C:\path\to\file.xlsx")
$workbook.SaveAs("C:\path\to\output.csv", 6)  # 6 is the file format for CSV
$workbook.Close()
$excel.Quit()

首先,使用 COM 对象创建一个新的 Excel.Application 实例。然后将新实例分配给名为 excel 的 Powershell 变量。

然后使用 excel 从特定操作中打开工作簿。之后,通过向 SaveAs 函数提供两个参数,将工作簿另存为 csv。第一个参数是文件的位置,第二个参数设置为 6,表示文件类型为 CSV。然后关闭工作簿并安静 Excel.Application 的 Excel 实例。

使用 OleDbDataAdapter 类

使用 OleDbDataAdapter 类在 PowerShell 中将 xlsx 转换为 csv

使用 OleDbDataAdapter 类:

$connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\file.xlsx;Extended Properties='Excel 12.0 Xml;HDR=YES'"
$conn = New-Object System.Data.OleDb.OleDbConnection($connStr)
$conn.Open()
$cmd = New-Object System.Data.OleDb.OleDbCommand("SELECT * FROM [Sheet1$]", $conn)
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter($cmd)
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataset)
$dataset.Tables[0] | Export-Csv -Path "C:\path\to\output.csv" -NoTypeInformation
$conn.Close()

此方法使用 OleDb 数据提供程序将 xlsx 文件转换为 csv 文件。首先,通过创建连接字符串 $connStr 来建立连接,其中包含源文件等信息、Excel 格式等属性以及在本例中设置为 YES 的标头值。

现在,通过使用 $connStr 字符串,创建了一个新的 OleDbconnetion 对象。创建连接对象后,打开连接开始转换。接下来,创建名为 $cmd 的新对象,以使用命令 SELECT * FROM [Sheet1$] 从 Excel 工作表中选择数据。

之后,创建了$OleDbDataAdapteradapter,用于填充上一个命令中从文件中提取的数据。使用Fill()函数将提取的数据存储在对象$dataset中;数据集填充了从 Excel 文件中提取的数据。最后,使用 Export 命令将数据导出到 csv 文件。将 csv 文件保存到指定位置,最后使用 Close() 函数关闭连接。

这就是如何在 PowerShell 中将 xlsx 转换为 csv。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯