$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)
I was attempting to follow that, but for some reason for me the SaveAs()
doesn't work. It gives me an error
cannot access the file 'D://ETL_Data/E567DF00
What do I have to do to get this to save over to CSV?
Edit:
Exact error without the fileformat parameter 6
as suggested in the comments:
Microsoft Excel cannot access the file 'D:\//ETL_Data/8011FF00'. There are several possible reasons: o The file name or path does not exist. o The file is being used by another program. o The workbook you are trying to save has the same name as a currently open workbook. At D:\PS_Scripts\twitchExcelAddSnapShot.ps1:32 char:1 + $Excel.ActiveWorkbook.SaveAs($csvPath) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
Exact error with fileformat parameter 6
:
The file could not be accessed. Try one of the following: o Make sure the specified folder exists. o Make sure the folder that contains the file is not read-only. o Make sure the file name does not contain any of the following characters: < > ? [ ] : | or * o Make sure the file/path name doesn't contain more than 218 characters. At D:\PS_Scripts\twitchExcelAddSnapShot.ps1:32 char:1 + $Excel.ActiveWorkbook.SaveAs($csvPath,6) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException