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

如何通过Powershell对.xlsx文件调用=PROPER()等大小写转换函数

PowerShell修改Excel指定列大小写的正确实现方法

原有代码错误点

  • 直接将文件路径赋值给$worksheet变量,未完成工作簿、工作表的加载操作
  • 多列参数传入格式不符合PSExcel的要求
  • PSExcel的列对象不存在内置的ToProper()方法,需要自行实现对应大小写转换逻辑

可运行实现代码(基于PSExcel模块)

# 导入PSExcel模块
Import-Module PSExcel

# 配置Excel文件路径
$excelFilePath = "C:\Users\USERNAME\Downloads\Book1.xlsx"
# 加载Excel工作簿
$excelObject = New-Excel -Path $excelFilePath
# 选择要操作的工作表,此处默认取第一个工作表,可修改为工作表名称,如Worksheets["Sheet1"]
$worksheet = $excelObject.Workbook.Worksheets[1]

# 定义需要调整格式的目标列,可按需增删
$targetColumns = @("Name", "Primary Worksite", "Primary Job Title")

foreach ($columnName in $targetColumns) {
    # 匹配目标列的索引
    $columnIndex = ($worksheet.Cells[1, 1..$worksheet.Dimension.End.Column] | Where-Object { $_.Value -eq $columnName }).Start.Column
    if (-not $columnIndex) {
        Write-Warning "未找到匹配列:$columnName,已跳过该列处理"
        continue
    }
    # 从第二行开始遍历处理数据(跳过表头行)
    for ($rowNum = 2; $rowNum -le $worksheet.Dimension.End.Row; $rowNum++) {
        $currentCellValue = $worksheet.Cells[$rowNum, $columnIndex].Value?.ToString()
        if (-not [string]::IsNullOrWhiteSpace($currentCellValue)) {
            # 首字母大写(对应Excel PROPER()函数效果)
            $worksheet.Cells[$rowNum, $columnIndex].Value = [cultureinfo]::CurrentCulture.TextInfo.ToTitleCase($currentCellValue.ToLower())
            # 如需全小写(对应LOWER()),替换为:$currentCellValue.ToLower()
            # 如需全大写(对应UPPER()),替换为:$currentCellValue.ToUpper()
        }
    }
}

# 保存修改并释放资源
$excelObject.Save()
$excelObject.Dispose()

注意事项

  • 运行代码前需提前安装PSExcel模块,未安装可执行Install-Module -Name PSExcel -Scope CurrentUser完成安装
  • 建议处理前备份原Excel文件,避免操作失误导致数据丢失
  • 如果工作表名称固定,可将Worksheets[1]修改为指定名称,如Worksheets["员工信息"],避免工作表顺序变动导致处理错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:45:03