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

PowerShell脚本开发需求:基于Excel生成员工短名单列

PowerShell Script to Generate Employee Short Names from Excel

需求回顾

输入:仅包含EmpName列的Excel文件,示例值如AARON、JEFFERY AARON等
输出:包含EmpName和EmpShortName两列的新Excel文件
EmpShortName生成规则:

  • 单名(只有一个单词):取首字母+全名,如AARON → A.AARON
  • 全名(多个单词):名字首字母+完整姓氏,如JEFFERY AARON → J.AARON

脚本实现

首先,我们需要用到ImportExcel模块来处理Excel文件(这个模块比原生COM对象更易用,无需依赖Office客户端),如果还没安装的话,先执行安装命令:

Install-Module -Name ImportExcel -Scope CurrentUser -Force

然后是完整的处理脚本:

# 配置文件路径,记得替换成你自己的路径
$inputFilePath = "C:\Your\Input\File.xlsx"
$outputFilePath = "C:\Your\Output\File.xlsx"

# 读取输入Excel的EmpName列(默认读取第一个工作表,若表名不是Sheet1可加-WorksheetName参数指定)
$employeeList = Import-Excel -Path $inputFilePath

# 处理每条数据生成短名字
$processedData = $employeeList | ForEach-Object {
    # 按空格拆分名字,处理多个连续空格的情况
    $nameSegments = $_.EmpName -split '\s+'

    if ($nameSegments.Count -eq 1) {
        # 单名场景:首字母+点号+全名
        $shortName = "$($nameSegments[0][0]).$($nameSegments[0])"
    } else {
        # 全名场景:第一个名字的首字母+点号+最后一个单词(姓氏)
        $shortName = "$($nameSegments[0][0]).$($nameSegments[-1])"
    }

    # 返回包含原姓名和短姓名的对象
    [PSCustomObject]@{
        EmpName = $_.EmpName
        EmpShortName = $shortName.ToUpper() # 统一转为大写,匹配示例格式
    }
}

# 导出处理后的数据到新Excel,自动调整列宽、冻结首行、加粗表头
$processedData | Export-Excel -Path $outputFilePath -AutoSize -FreezeTopRow -BoldTopRow -WorksheetName "ProcessedNames"

关键逻辑说明

  • 名字拆分:用-split '\s+'拆分名字,能自动过滤多个连续空格,避免出现空的拆分片段
  • 单名处理:当拆分后只有一个片段时,直接取首字母拼接全名
  • 全名处理:拆分后取第一个片段的首字母,拼接最后一个片段(默认姓氏在最后)
  • 格式统一:用ToUpper()确保输出的短姓名和示例一致,都是全大写格式
  • 输出优化:Export-Excel的参数让输出文件更美观,无需手动调整格式

使用步骤

  1. 安装ImportExcel模块(仅第一次使用需要)
  2. 修改脚本中的输入输出文件路径为你实际的路径
  3. 运行脚本,打开输出文件验证结果即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:48:16