【问题标题】:Powershell - Split Tab delimited CSV by string & convert to HTMLPowershell - 按字符串拆分制表符分隔 CSV 并转换为 HTML
【发布时间】:2020-05-04 06:04:33
【问题描述】:

我可以使用下面的代码从制表符分隔的 CSV 导出 HTML 表格文件。但是,我现在正尝试根据下面的排序列导出单独的 HTML;对以下代码的任何帮助将不胜感激!

Powershell 代码

    $Header = @"
<style>
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}
TH {border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color: #6495ED;}
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;}
</style>
"@

Import-Csv -delimiter "`t" -Path .\test.txt  | Select DATE,Recipeint,To,BODY,Sort| ConvertTo-Html -Head $Header| Out-File .\test.html

【问题讨论】:

    标签: powershell


    【解决方案1】:

    如果您想在一个文件中包含多个 HTML 表格,您可以执行以下操作:

    Import-Csv -Path .\test.txt -Delimiter "`t" |
        Sort-Object {[int]$_.Sort} | Group-Object -Property Sort | Foreach {
            $_.Group | ConvertTo-Html -Head $header } | Out-File .\test.html
    

    如果要将拆分后的数据输出到多个文件中,可以执行以下操作:

    Import-Csv -Path .\test.txt -Delimiter "`t" |
        Sort-Object {[int]$_.Sort} | Group-Object -Property Sort | Foreach {
            $OutFile = ".\test{0}.html" -f $_.Group.Sort
            $_.Group | ConvertTo-Html -Head $header | Out-File $OutFile
        }
    

    说明:

    Group-Object 根据属性值将对象组合在一起。如果我们对属性Sort 进行分组,它将返回与不同Sort 值的数量相匹配的组数。

    对于Sort-Object,首先将Sort 属性转换为[int] 以进行数字排序。

    【讨论】:

    • 完美,最后一件事是如何按日期对 HTML 文件输出进行排序,以便每个对话正常进行。我正在使用您提供的多文件代码。
    • Sort-Object,你可以使用-Property {[int]$_.Sort,[datetime]$_.Date}-Property 接受属性数组,优先级从左到右。
    猜你喜欢
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2013-06-11
    • 2010-10-19
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多