powershell:excelをcsvから更新1
文書の過去の版を表示しています。
- TEST.xlsxのバックアップを取得し、“YYYYMMDD_TEST.xlsx”という名前で保存する。
- シート「履歴」AB2セルには、日付が記載されています。
- シート「オブジェクト」とCSVファイル「Object.csv」、シート「ポリシ」とCSVファイル「Polisy.csv」を比較し、差分があるシートを削除し、新しいシートを追加します。更新したシート名を変数$UpdateSheetSummaryに格納します。
- シート「履歴」AB2セルに、日付を“YYYY/MM/DD”のフォーマットで入力します。W2セルの値を1増やし、小数点がある場合は切り捨てます。
- 履歴が記載されているC列を確認し、最後に数字が記載されている行を前回の更新行とし、その3行下を今回の更新行とします。
- 更新行のC列にW2セルの値をコピーし、H列にAB2セルの値をコピーします。M列に$UpdateSheetSummaryを記載し、R列に“日付 $UpdateSheetSummary (LF)(LF)“を記載します。
- 最後に、TEST.xlsxを保存します。
- 注意事項:
- シートとCSVの比較はA列からH列を比較してください。
- PowerShellスクリプトには、シートとCSVファイルの比較および更新に関するコードと、最後の数値が記載されている行を見つけるコードが不足しているため、適切なコードに置き換える必要があります。
# Excelモジュールを読み込む Import-Module ImportExcel # ファイルパスを定義 $excelFilePath = "TEST.xlsx" $backupDate = (Get-Content $excelFilePath | Select-Object -ExpandProperty 'AB2').ToString("yyyyMMdd") $backupFilePath = $backupDate + "_TEST.xlsx" # 元のファイルのバックアップを作成 Copy-Item $excelFilePath $backupFilePath # Excelファイルを開く $excel = Open-ExcelPackage -Path $excelFilePath # シートとCSVを取得 $sheetHistory = $excel.Workbook.Worksheets['履歴'] $sheetObject = $excel.Workbook.Worksheets['オブジェクト'] $sheetPolicy = $excel.Workbook.Worksheets['ポリシ'] $csvObject = Import-Csv "Object.csv" $csvPolicy = Import-Csv "Polisy.csv" # シートとCSVを比較して更新 $UpdateSheetSummary = # A列からH列までのシートとCSVファイルを比較して更新するコード # 「履歴」シートを更新 $sheetHistory.AB2.Value = (Get-Date).ToString("yyyy/MM/dd") $sheetHistory.W2.Value = [math]::Floor($sheetHistory.W2.Value) + 1 # C列にRevision、H列にUpdateDate、M列にUpdateSheet、R列にUpdateDetailsがあります $lastUpdateRow = ($sheetHistory.Cells["C:C"].Where({$_.Value -ne $null}) | Select-Object -Last 1).Start.Row $updateRow = $lastUpdateRow + 3 $sheetHistory.Cells["C$updateRow"].Value = $sheetHistory.W2.Value $sheetHistory.Cells["H$updateRow"].Value = $sheetHistory.AB2.Value $sheetHistory.Cells["M$updateRow"].Value = $UpdateSheetSummary $sheetHistory.Cells["R$updateRow"].Value = (Get-Date).ToString("yyyy/MM/dd") + " $UpdateSheetSummary (LF)(LF)" # Excelファイルを保存して閉じる Close-ExcelPackage $excel -Show
powershell/excelをcsvから更新1.1680770709.txt.gz · 最終更新: 2023/04/06 08:45 by taatin