我有一個 Excel 檔案,其中三列設定為數字。但是,當我打開檔案時,我有這個:

我在這里找到了一個有用的鏈接:stackoverflow 鏈接
我已經嘗試過這種方法,但出現以下錯誤。有什么我做錯了嗎:
$wb = 'C:\Users\user1\Documents\Working Folder\239\239_uploadFile.xlsx'
$excel = new-object -ComObject excel.application
$excel.visible = $false
$excel.DisplayAlerts = $false
$wb = $excel.workbooks.open($wb)
$ws1 = $wb.worksheets.item(3)
$ws1.columns.item(1).numberformat = 0
$ws1.Columns.item(14).Value = $ws1.Columns.item(14).Value
$wb.Save()
$wb.close()
$excel.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel)
Remove-Variable excel`
[
uj5u.com熱心網友回復:
在最新版本的 Excel(至少從Excel 2019 開始)中,該
.Value屬性現在是一個引數化屬性,因此需要一個引數才能使用。- 一個簡單的解決方法是改用該
.Value2屬性- 如下所示。 - 但是,
.Value2與.Value“它不使用Currency和Date資料型別”不同 - 如果需要這些型別,請使用.Value(10)(sic) 代替(10是xlRangeValueDefault常量的值)。
- 一個簡單的解決方法是改用該
雖然使用在早期 PowerShell (Core) 版本中
.Item()明確使用的方法,但從(至少)PowerShell (Core) 7.2.1 開始不再是這種情況。
因此,請嘗試以下操作:
& {
$wb = 'C:\Users\user1\Documents\Working Folder\239\239_uploadFile.xlsx'
$excel = new-object -ComObject excel.application
$wb = $excel.workbooks.open($wb)
$ws1 = $wb.worksheets(3)
$ws1.columns(1).numberformat = 0
# Note the use of .Value2, not .Value
$ws1.Columns(14).Value2 = $ws1.Columns(14).Value2
$wb.Save()
$wb.close()
$excel.Quit()
}
注意 的使用& { ... },即在子范圍內執行 Excel 相關代碼。這使得呼叫和Remove-Variable excel不必要的 - 有關更多資訊,請參閱此答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428270.html
上一篇:正則運算式在xml中查找鍵/值
下一篇:獲取所有OU中的用戶計數并總計
