
答え1
私の意見では、これを行う最も簡単な方法は、Excel の VBA マクロを使用することです。
Sub CleanFiles()
' for each file in a directory
' open it, delete all cell content around the first 20x25 cells, write it back
' 2015-10-15
Dim path As String, aFile As String
Dim arr As Variant
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False
path = "D:\TEMP\xls\" ' must have trailing backslash
aFile = Dir(path & "*.xls")
Do While aFile <> ""
Application.StatusBar = aFile
aFile = path & aFile
Workbooks.Open (aFile)
' process file content
arr = ActiveSheet.Range("A1:Y20")
Cells.Clear
ActiveSheet.Range("A1:Y20") = arr
' save and close WB
ActiveWorkbook.Close True, aFile
aFile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = False
Application.StatusBar = False
End Sub
まず、画面の更新と自動マクロを無効にします。次に、特定のフォルダーをスキャンして '*.xls' ファイルを探し、各ファイルを開きます。保存する領域の内容は内部的に保存され、その後、シート全体がクリアされ、内容がシートに書き戻されます。ファイルを閉じるときは、プロンプトなしで保存されます。
答え2
Get-Content file.csv | select -First 25 | Export-Csv newfile.csv
最初の 20 ~ 25 行を指定する場合は、a を実行できますGet-Content -Header @("a","b","c") file.csv | Select a,b,c | Export-Csv newfile.csv
。この順序で a などを実行して、y まですべて選択すると、25 番目の列になります。ただし、もっと良い方法があるかもしれません。