繁体   English   中英

如何使用 PowerShell 脚本修改 excel 数据并导出到文本文件?

[英]How to modify excel data and export to text file using PowerShell script?

第一次在这里发海报。 如果我没有遵循发布此问题的最佳做法,我深表歉意。

我对脚本和 PowerShell 非常陌生。

问题:

我在 excel 表中有这种格式的数据。

Excel 数据图像链接

1

我想修改这些数据并将其导出到文本文件中。 以这种格式。

所需 Output 图像链接

2

到目前为止,我已经尝试通过访问每个单元格来修改 excel 数据。 要访问每个单元格,我使用了下面提到的类似代码。

 for (($i = 1); $i -lt 4; $i++)
{
$column=$ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Text
$dataType=$ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Text

$c1=("`"" + "$column" + "`""+":")
$c2=("`"" + "$dataType" + "`"" + ",")
$ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Value=$c1
$ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Value=$c2
}

我仍然不确定这是否是 go 的正确方法。

解决这个问题的最佳方法是什么?

只是想了解我应该怎么做才能解决这个问题。 我不是在寻找确切的代码。

分步说明或一些资源会有所帮助。

谢谢!

这可能会有所帮助......也许......

# Import Stuff
$Data = Import-Csv -Path .\Desktop\data.csv

# New Array 
$Output = @()

# Run through Unique Owners
foreach ($Owner in ($Data | Select-Object OWNER -Unique)) {
    $Lines = $Data | Where-Object {$_.OWNER -eq $Owner.OWNER}
    # Lazy way to do a bit of checking, if same then use it or Break
    if ($Lines[0].TABLE_NAME -eq $Lines[1].TABLE_NAME) {
        $Out_TableName = $Lines[0].TABLE_NAME
        # ID and NAME data
        $Out_ID = $Lines | Where-Object {$_.COLUMN_NAME -eq "ID"} | Select-Object COLUMN_NAME, DATA_TYPE, DATA_LENGTH
        $Out_NAME = $Lines | Where-Object {$_.COLUMN_NAME -eq "NAME"} | Select-Object COLUMN_NAME, DATA_TYPE, DATA_LENGTH
    } else {
        # Show the user that something
        Write-Host "Problem with Owner ""$($Owner.OWNER)"" Data?!" -ForegroundColor Red
        Break
    }
    # Output into the array in format
    $Output += @"
"$($Owner.OWNER).$($Out_TableName)":{
"$($Out_ID.COLUMN_NAME)": "$($Out_ID.DATA_TYPE) ($($Out_ID.DATA_LENGTH))",
"$($Out_NAME.COLUMN_NAME)": "$($Out_NAME.DATA_TYPE) ($($Out_NAME.DATA_LENGTH))"
}

"@
}

# Put Output in a text file
$Output | Set-Content .\Desktop\output.txt -Force

我应该补充一点,我在 CSV 中有你的数据,就像这样......

OWNER,TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH
A,Employee,ID,NUMBER,22
A,Employee,NAME,VARCHAR2,22
B,Department,ID,NUMBER,23
B,Department,NAME,VARCHAR2,24

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM