【问题标题】:Excel add Row Grouping using powershellExcel使用powershell添加行分组
【发布时间】:2018-06-29 08:21:35
【问题描述】:

我有以下 csv 文件,我想导入 excel 并使用 powershell 为子项添加行分组。我能够打开文件并格式化单元格。不知道如何添加行分组。

数据

name,,
one,,
,value1,value2
,value3 ,value4
two,,
,value4,sevalue4
,value5,sevalue5
,value6,sevalue6
,value7,sevalue7
three,,
,value8,sevalue8
,value9,sevalue9
,value10,sevalue10
,value11,sevalue11

我想在excel中这样转换。

这是我在excel中打开它的代码。

$a = New-Object -comobject Excel.Application
$a.visible = $True 

$b = $a.Workbooks.Open("C:\shared\c1.csv")

$c = $b.Worksheets.Item(1)
$d = $c.Cells(1,1)
$d.Interior.ColorIndex = 19
$d.Font.ColorIndex = 11
$d.Font.Bold = $True

$b.Save("C:\shared\c1.xlsx")

如何为这些数据添加行分组?

谢谢 SR

【问题讨论】:

    标签: excel powershell vba


    【解决方案1】:

    应用逻辑:

    A 列中的值为空白的所有连续行分组

    在以下代码中,我打开了一个 CSV 文件,根据您共享的数据进行了所需的分组并保存。保存时,由于行分组,我无法将其保存为 csv 格式。所以,我不得不将格式更改为普通的工作簿。但是,它有效。

    代码

    $objExl = New-Object -ComObject Excel.Application
    $objExl.visible = $true
    $objExl.DisplayAlerts = $false
    $strPath = "C:\Users\gurmansingh\Documents\a.csv"    #Enter the path of csv
    $objBook = $objExl.Workbooks.open($strPath)
    $objSheet = $objBook.Worksheets.item(1)
    $intRowCount = $objSheet.usedRange.Rows.Count
    for($i=1; $i -le $intRowCount; $i++)
    {
        if($objSheet.Cells.Item($i,1).text -like "")
        {
            $startRow = $i
            for($j=$i+1; $j -le $intRowCount; $j++)
            {
                if($objSheet.cells.Item($j,1).text -ne "" -or $j -eq $intRowCount)
                {
                    $endRow = $j-1
                    if($j -eq $intRowCount)
                    {
                        $endRow = $j
                    }
                    break
                }
            }
            $str = "A"+$startRow+":A"+$endRow
            $objSheet.Range($str).Rows.Group()
            $i=$j
        }
    }
    $objBook.SaveAs("C:\Users\gurmansingh\Documents\b",51)        #saving in a different format.
    $objBook.Close()
    $objExl.Quit()
    

    之前:

    a.csv
    

    运行代码后的输出:

    b.xlsx
    

    【讨论】:

      【解决方案2】:

      另外,看看使用我的 Excel PowerShell 模块是多么容易。

      Install-Module ImportExcel

      https://github.com/dfinke/ImportExcel/issues/556#issuecomment-469897886

      【讨论】:

        猜你喜欢
        • 2015-06-11
        • 2014-08-24
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        • 2017-07-20
        • 2011-11-19
        • 1970-01-01
        相关资源
        最近更新 更多