PowerShell脚本求助:统计XLSX行数与金额并实现文件重命名
完成PowerShell处理XLSX文件的脚本开发
首先,PowerShell原生不支持直接解析XLSX文件,我们需要用到ImportExcel模块,先安装它:
Install-Module -Name ImportExcel -Scope CurrentUser -Force
以下是完整的脚本,包含你需要的所有功能:
# 指定原始文件路径(如果文件不在当前目录,写完整绝对路径) $originalFilePath = ".\DOM-TEST-JJMMYYYY.xlsx" # 读取第一个工作表的数据(自动跳过表头) $sheetData = Import-Excel -Path $originalFilePath -WorksheetIndex 0 # 计算有效行数(无前置零,转字符串时自动去除) $rowCount = $sheetData.Count $rowCountStr = "$rowCount" # 计算Amount列的四舍五入总和(保留两位小数) $totalAmount = [math]::Round(($sheetData | Measure-Object -Property Amount -Sum).Sum, 2) $totalAmountStr = "$totalAmount" # 拼接符合要求的新文件名 $newFileName = "DOM-TEST-JJMMYYYY-$rowCountStr-$totalAmountStr.xlsx" # 执行文件重命名 Rename-Item -Path $originalFilePath -NewName $newFileName # 输出处理结果提示 Write-Host "处理完成,新文件名:$newFileName"
关键步骤说明
- 读取Excel数据:
Import-Excel会自动识别表头,$sheetData存储的是所有数据行,因此Count值就是排除表头后的实际数据行数 - 去除前置零:将数字转为字符串时,PowerShell会自动剔除前置零,比如数字
000456转字符串后直接变为456 - 金额四舍五入:用
[math]::Round()指定保留两位小数,确保总和格式符合要求 - 重命名操作:直接调用
Rename-Item完成,注意如果文件不在当前执行目录,必须在$originalFilePath中填写完整路径
注意事项
- 如果
Amount列存在非数值内容,脚本会报错,建议提前清理数据,或者添加错误捕获逻辑 - 首次执行PowerShell脚本可能遇到执行策略限制,可执行
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser解除限制(执行后选Y确认)
内容的提问来源于stack exchange,提问作者amin89
相关产品推荐
相关产品推荐

