我将CSV文件用作$ AgencyMaster,其中包含两列,即AgencyID和AgencyName。目前,我是从另一个文件$ Excel_File_Path手动输入这些,但是如果可能的话,我想自动生成$ AgencyMaster。
$ Excel_File_Path具有三个工作表:Sheet1,Sheet2和模板。 Sheet1和Sheet2充满了数据,而Template则用作基于AgencyID填充的所述数据的图形表示。我有一个脚本,可打开$ Excel_File_Path,将AgencyID输入到特定的单元格中,保存它,然后将其转换为PDF。它会为$ AgencyMaster中的每个AgencyID(目前超过200个)执行此操作。
在$ Excel_File_Path中,Sheet1和Sheet2中的B和C列包含所有的AgencyID和AgencyName,但是有一堆重复项。我无法删除任何行,因为尽管它们在B和C列中是重复的,但D,E,F等列在Template中使用了不同的数据。因此,我需要能够获取可能出现在Sheet1或Sheet2中的每个唯一的AgencyID和AgencyName,并将它们导出到CSV以用作$ AgencyMaster。
示例:
(https://i.imgur.com/j8UIZqp.jpg)
B列包含AgencyID,C列包含AgencyName。我想将Sheet1和Sheet2各自的唯一值导出到CSV $ AgencyMaster 我发现了如何将其导出到同一工作簿中的另一个工作表,而不是一起导出到单独的工作簿。我还想将其另存为A单元格中前导0的.CSV。
# Checking that $AgencyMaster Exists, and importing the data if it does
If (Test-Path $AgencyMaster) {
$AgencyData = Import-CSV -Path $AgencyMaster
# Taking data from $AgencyMaster and assigning it to each variable
ForEach ($Agency in $AgencyData) {
$AgencyID = $Agency.AgencyID
$AgencyName = $Agency.AgencyName
# Insert agency code into cell D9 on Template worksheet
$ExcelWS.Cells.Item(9,4) = $AgencyID
$ExcelWB.Save()
# Copy-Item Properties
$Destination_File_Path = "$Xlsx_Destination\$AgencyID -
$AgencyName - $company $month $year.xlsx"
$CI_Props = @{
'Path' = $Excel_File_Path;
'Destination' = $Destination_File_Path;
'PassThru' = $true;
} # Close $CI_Props
# Copy & Rename file
Copy-Item @CI_Props
} # Close ForEach
} # Close IF
答案 0 :(得分:0)
I would recommend using either Sort-Object -Unique
or Group-Object
.