$Path = 'D:/ETL_Data/TwitchTVData.xlsx'
$csvPath = 'D:/ETL_Data/TwitchTVData2.csv'
# Open the Excel document and pull in the 'Sheet1' worksheet
$Excel = New-Object -Com Excel.Application
$Workbook = $Excel.Workbooks.Open($Path)
$page = 'Sheet1'
$ws = $Workbook.Worksheets | Where-Object {$_.Name -eq $page}
$Excel.Visible = $true
$Excel.DisplayAlerts = $false
# Set variables for the worksheet cells, and for navigation
$cells = $ws.Cells
$row = 1
$col = 4
$formula = @"
=NOW()
"@
# Add the formula to the worksheet
$range = $ws.UsedRange
$rows = $range.Rows.Count
for ($i=0; $i -ne $rows; $i++) {
$cells.Item($row, $col) = $formula
$row++
}
$ws.Columns.Item("A:D").EntireColumn.AutoFit() | Out-Null
$ws.Columns.Range("D1:D$rows").NumberFormat = "yyyy-MM-dd hh:mm"
$Excel.ActiveWorkbook.SaveAs($csvPath)
$Excel.Quit()
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
私はそれに従おうとしていましたが、どういうわけか私にSaveAs()
はうまくいきません。エラーが発生します
ファイルにアクセスできません 'D:// ETL_Data / E567DF00
これをCSVに保存するにはどうすればよいですか?
編集:
6
コメントで提案されているように、fileformatパラメーターがない場合の正確なエラー:
MicrosoftExcelはファイル 'D:\ // ETL_Data / 8011FF00'にアクセスできません。 考えられる理由はいくつかあり ます。oファイル名またはパスが存在しない。 oファイルが別のプログラムによって使用されています。 o保存しようとしている ブックは、現在開いているブックと同じ名前です。 D:\ PS_Scripts \ twitchExcelAddSnapShot.ps1:32 char:1 + $ Excel.ActiveWorkbook.SaveAs($ csvPath) + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ + CategoryInfo:OperationStopped :( :) []、COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException
fileformatパラメータの正確なエラー6
:
ファイルにアクセスできませんでした。次のいずれかを試してください 。o指定したフォルダーが存在することを確認します。 oファイルを含むフォルダーが読み取り専用でないことを確認します。 oファイル名に次の文字が含まれていないことを確認してください。 <>?[]:| または* oファイル/パス名に218文字を超えないようにしてください。 D:\ PS_Scripts \ twitchExcelAddSnapShot.ps1:32 char:1 + $ Excel.ActiveWorkbook.SaveAs($ csvPath、6) + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ + CategoryInfo:OperationStopped :( :) []、COMException + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException
PowerShellはパスセパレーターに関してはかなり寛容ですが、COM +サーバー(のようなExcel.Application
)はそうではないかもしれません。
の代わり$csvPath
に使用する変数値を変更します。\
/
$csvPath = 'D:\ETL_Data\TwitchTVData2.csv'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加