Есть ли способ переименовать или удалить поврежденные ранжированные имена, которые включают пробелы, например, "ACVCutoff_4 1" в файле Excel с помощью powershell?Я застрял на этом.Переименование или удаление имен не выполняется.
$Excel = New-Object -Com Excel.Application
$wbTo = $Excel.workbooks.open($path)
foreach($name in $wbTo.Names)
{
$name.Name = $tt -replace '\s+', '_' # name is not affected
$name.delete() # returns an error Exception calling "Delete" with "0" argument(s): "Exception from HRESULT: 0x800A03EC"
}
Что я пробовал:
Смежный вопрос
- Включение надстройки диспетчера имен не решает проблему.
- «Проверить эталонный стиль R1C1» (проверить ссылку) - как этого можно достичь, написав код?
Есть ли другие предложения?Буду признателен за вашу помощь
Я использую powershell v2 и Excel 2007 / 2010.
Это файл с неправильными именами: XlsWithBrokenNames
SOLUTION BYКрис Нейлсен для тех, кто тоже застрял на этом:
#$wbTo - is workbook with corrupt names
$tempFilePath = $path + "temp.xlsm"
$goodFilePath = $path + "cleanFile.xls"
$wbTo.SaveAs($tempFilePath,52) #save as xlsm
$wbTemp = $Excel.workbooks.open($tempFilePath) # open target
# delete names here
$wbTemp.SaveAs($goodFilePath,56) #save as xls