You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅使用PowerShell将指定TXT文件转换为CSV或Excel文件

使用PowerShell转换键值对文本为结构化CSV/Excel

需求说明

输入文本文件格式(每行是键=值结构):

Far=naka
IntVer=10.9
RelVer=18.9
Far=paka
Far=moka
IntVer=10.8
RelVer=17.8
Far=sota
Far=kata
IntVer=10.9
RelVer=12.6

需转换为结构化的CSV(或Excel),最终格式示例:

Far,IntVer,RelVer
Naka,10.9,18.9
Paka,NA,NA
Moka,10.8,17.8
Sota,NA,NA
Kata,10.9,12.6

PowerShell实现方案

方案1:导出为CSV文件(无需额外模块)

利用PowerShell内置命令即可完成转换,步骤如下:

# 读取输入文本文件
$inputLines = Get-Content -Path "input.txt"

# 初始化变量存储当前记录状态
$currentFar = $null
$currentIntVer = "NA"
$currentRelVer = "NA"
$resultRecords = @()

foreach ($line in $inputLines) {
    # 跳过空行
    if ([string]::IsNullOrWhiteSpace($line)) { continue }
    # 分割键值对,限制分割次数为2,避免值含等号时出错
    $key, $value = $line -split '=', 2 | ForEach-Object { $_.Trim() }

    switch ($key) {
        "Far" {
            # 若已有未保存的Far记录,先存入结果集
            if ($currentFar -ne $null) {
                $resultRecords += [PSCustomObject]@{
                    Far     = $currentFar
                    IntVer  = $currentIntVer
                    RelVer  = $currentRelVer
                }
            }
            # 更新当前Far,重置版本号为NA
            $currentFar = $value
            $currentIntVer = "NA"
            $currentRelVer = "NA"
        }
        "IntVer" {
            $currentIntVer = $value
        }
        "RelVer" {
            $currentRelVer = $value
        }
    }
}

# 保存最后一条未处理的记录
if ($currentFar -ne $null) {
    $resultRecords += [PSCustomObject]@{
        Far     = $currentFar
        IntVer  = $currentIntVer
        RelVer  = $currentRelVer
    }
}

# 导出为CSV文件,-NoTypeInformation 去除多余类型信息行
$resultRecords | Export-Csv -Path "output.csv" -NoTypeInformation -Encoding UTF8

# 若需要生成对齐的纯文本表格(和示例格式一致),执行以下命令
$resultRecords | Format-Table -AutoSize | Out-File "output_table.txt"

方案2:导出为Excel文件(需额外模块)

如果需要直接输出Excel文件,需先安装ImportExcel模块(PowerShell官方仓库提供):

  1. 安装模块(需管理员权限,或指定当前用户范围):
Install-Module -Name ImportExcel -Scope CurrentUser -Force
  1. 转换并导出Excel:
# 复用上面的$resultRecords变量,一键导出Excel并美化格式
$resultRecords | Export-Excel -Path "output.xlsx" -AutoSize -BoldTopRow

代码说明

  • 遍历文本行时,通过-split '=',2确保值中包含等号的场景也能正确分割键值
  • 维护当前记录状态:遇到新的Far时,先保存上一条记录,再重置版本号为默认的NA
  • 循环结束后手动保存最后一条记录,避免遗漏
  • 导出CSV时用-NoTypeInformation移除PowerShell默认添加的类型信息行
  • 导出Excel时利用ImportExcel模块自动调整列宽、设置表头加粗,提升可读性

内容的提问来源于stack exchange,提问作者Himanshuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:10:12