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

PowerShell中如何用PSExcel替换Excel字符后导出为CSV文件

解决方案

该需求可完全实现,全程无需安装Excel,仅通过PSExcel模块和PowerShell内置操作即可完成全流程自动处理。

修改后的完整代码

Import-Module PSExcel

$path_to_files = "C:\temp\MetaData_ORG"
$delimiter= "|"
$replacement=""

Get-ChildItem -Path $path_to_files –Recurse -Filter *.XLSX | ForEach-Object {
    $DestinationFile = $_.FullName.Replace("xlsx","csv").Replace("-",$replacement)
    # 读取Excel数据并批量处理所有字段的特殊字符
    $processedData = Import-Xlsx $_.FullName | ForEach-Object {
        # 遍历当前行的所有字段
        foreach ($property in $_.PSObject.Properties) {
            # 仅处理字符串类型字段,不影响数字、日期等格式的字段
            if ($property.Value -is [string]) {
                $property.Value = $property.Value.Replace($delimiter, $replacement).Replace('"', $replacement)
            }
        }
        $_
    }
    # 导出处理后的数据为CSV,可根据需要调整编码格式
    $processedData | Export-Csv $DestinationFile -NoTypeInformation -Delimiter $delimiter -Encoding UTF8
}

逻辑说明

  • 读取Excel数据后逐行扫描所有字段,自动把字符串内容中的管道符|、双引号"替换为预设的$replacement值,从根源避免特殊字符打乱CSV的分隔结构
  • 完全保留原有脚本的路径配置、递归扫描XLSX文件、输出文件名规则等逻辑,无需调整原有业务参数
  • 全程仅调用PSExcel的读取能力,不依赖Office Excel的COM组件,可在无Excel安装的服务器、设备上正常运行
  • 可选优化:若使用PowerShell 7及以上版本,可在Export-Csv命令中添加-UseQuotes Never参数,取消CSV字段外围的默认双引号包裹,进一步简化输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:01