For Excel 2010 & Windows 10 this PowerShell script works:
$BranchArray = "Excel.CSV","Excel.Macrosheet","Excel.OpenDocumentSpreadsheet.12","Excel.Sheet.8","Excel.Sheet.12","Excel.SheetBinaryMacroEnabled.12","Excel.SheetMacroEnabled.12"
ForEach ($Branch in $BranchArray){
$TempValue = (Get-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name '(default)').'(default)'
Set-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name '(default)' -Value $TempValue' "%1"'
Rename-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name 'command' -NewName 'command2'
Rename-Item -Path "Registry::HKCR$Branch\shell\Open\ddeexec" -NewName 'ddeexec2'
}
For revert changes:
$BranchArray = "Excel.CSV","Excel.Macrosheet","Excel.OpenDocumentSpreadsheet.12","Excel.Sheet.8","Excel.Sheet.12","Excel.SheetBinaryMacroEnabled.12","Excel.SheetMacroEnabled.12"
ForEach ($Branch in $BranchArray){
$TempValue = (Get-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name '(default)').'(default)' -replace ' "%1"'
Set-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name '(default)' -Value $TempValue
Rename-ItemProperty -Path "Registry::HKCR$Branch\shell\Open\command" -Name 'command2' -NewName 'command'
Rename-Item -Path "Registry::HKCR$Branch\shell\Open\ddeexec2" -NewName 'ddeexec'
}