首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Powershell在Excel中查找和添加数据

通过Powershell在Excel中查找和添加数据
EN

Stack Overflow用户
提问于 2017-05-25 03:08:25
回答 1查看 32关注 0票数 0

我有一个CSV文件,其中有类似的产品和旁边的每个产品的数量。

CSV文件中的示例

代码语言:javascript
复制
Qty Ordered         Product/Item Description    Top row (header)
   7                Product1
   3                Product2
   5                Product1
   3                Product3

我需要一种方法来找到所有相似的product#s,将它们的数量相加,并将每个相似产品的总数放在一个新的行中。

代码语言:javascript
复制
Add-Type -AssemblyName System.Windows.Forms
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property 
@{
Multiselect = $false # Multiple files can be chosen
Filter = 'Excel (*.csv, *.xlxs)|*.csv;*.xlsx' # Specified file types
}

[void]$FileBrowser.ShowDialog()

$file = $FileBrowser.FileNames;




[Reflection.Assembly]::LoadWithPartialName
("Microsoft.Office.Interop.Excel")|Out-Null
$excel = New-Object Microsoft.Office.Interop.Excel.ApplicationClass
$excel.Visible = $true 
$wb = $excel.Workbooks.Open($file)
$ws = $wb.ActiveSheet
$c = $ws.Columns
$c.Item(2).hidden = $true

这段代码要求用户选择csv文件,隐藏无用的列并自动调整重要列的大小。

EN

回答 1

Stack Overflow用户

发布于 2017-05-25 03:37:29

您可以先使用Import-CSV,然后使用Group-Object,而不是使用Excel作为COM对象。然后在组中循环查找所需的信息。

代码语言:javascript
复制
Add-Type -AssemblyName System.Windows.Forms 
$FileBrowser = New-Object System.Windows.Forms.OpenFileDialog -Property @{
    Multiselect = $false # Multiple files can be chosen 
    Filter = 'Excel (.csv, *.xlxs)|.csv;*.xlsx' # Specified file types 
} 
[void]$FileBrowser.ShowDialog() 
ForEach ($file in $FileBrowser.FileNames) {
    $CSV = Import-CSV $file | Add-Member -Name Total -Value 0 -MemberType NoteProperty
    $Groups = $CSV | Group-Object "Product/Item Description"
    $NewCSV = Foreach ($Group in $Groups) {
        $Count = 0
        $Group.Group."Qty Ordered" | ForEach-Object {$Count += $_}
        Foreach ($value in $CSV) {
            If ($value."Product/Item Description" -eq $Group.Name) {
                 $value.Total = $Count
                 $value
            }
        }
    }
    Export-CSV "$filenew" -NoTypeInformation
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44166687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档