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

如何用PowerShell填充Quickbooks导出CSV中B列为Sales Order的A列空值

解决方案

一、PowerShell CSV格式调整脚本

以下脚本完全匹配需求,可自动填充空A列值,遇到新商品名时自动更新基准值继续匹配:

# 定义输入输出文件路径
$inputCsv = "替换为你的原始CSV文件绝对路径"
$outputCsv = "替换为处理后CSV的输出路径"

# 读取原始CSV,Encoding参数可根据你文件的实际编码调整为UTF8/Default
$csvRows = Import-Csv -Path $inputCsv -Encoding Default
# 存储最后一个非空的A列商品名称
$latestItemName = ""

foreach ($row in $csvRows) {
    $currentColA = $row."" # 原始CSV第一列表头为空,因此用空字符串作为列名取值
    # 当A列非空且不是汇总行时,更新基准商品名
    if (-not [string]::IsNullOrWhiteSpace($currentColA) -and $currentColA -notmatch '^Total ') {
        $latestItemName = $currentColA
    }
    # 满足填充条件时写入基准商品名
    if ($row.Type -eq 'Sales Order' -and [string]::IsNullOrWhiteSpace($currentColA)) {
        $row."" = $latestItemName
    }
}

# 导出处理后的文件
$csvRows | Export-Csv -Path $outputCsv -Encoding UTF8 -NoTypeInformation -UseCulture

说明:-UseCulture参数会沿用你系统默认的列表分隔符,避免导出后CSV列错位

二、Quickbooks桌面版直接导出规整格式的方法

你可以通过以下设置调整「open sales orders by item」报表的导出规则,无需后续手动处理:

  • 调整报表显示设置:打开报表后点击顶部「修改报表」→切换到「显示」选项卡,勾选「重复项目名称到所有明细行」选项,取消分组折叠的默认设置
  • 导出前全部分组展开:点击报表顶部的「全部展开」按钮,让所有商品名下的销售订单行都完整显示商品名称后再执行导出
  • 优先导出Excel格式:Quickbooks对Excel格式的字段填充完整性优于CSV,可先导出为.xlsx格式,确认无空值后再另存为CSV使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:48:01