首页 > 代码库 > 修复Office不能嵌入Word和Excel对象的故障
修复Office不能嵌入Word和Excel对象的故障
故障描述:
用户原来安装的是WPS,因为和单位某些业务系统不兼容,卸载掉后换装Office2007,结果在Word里插入Excel对象会跳出下边的提示:
在Powerpoint里插入Excel对象会跳出下边的提示:
注意看在Word里插入Excel对象时有“ET”字样,这就确定了绝对是WPS导致的
解决:
网上搜索了很多方法,都无法解决。
按照错误提示,猜想可能是注册表中某些值还是WPS的,没有改过来导致的,于是去注册表中搜索,发现:
HKEY_CLASSES_ROOT\CLSID\{00020810-0000-0000-C000-000000000046}到HKEY_CLASSES_ROOT\CLSID\{00020833-0000-0000-C000-000000000046}是插入Excel对象需要提供的一些数据,比如图标、文件后缀名、文件打开程序等
HKEY_CLASSES_ROOT\CLSID\{000209FE-0000-0000-C000-000000000046}到HKEY_CLASSES_ROOT\CLSID\{00020907-0000-0000-C000-000000000046}是插入Word对象需要提供的一些数据
其实这些注册表项就是Office插入“对象”列表中显示的内容。也就是下图红框中的内容
下边列举出其中一个插入.xlsx文件对象相关注册表键值
[HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}] @="Microsoft Office Excel 工作表" "IPersistStorageType"=dword:00000002 "MainPartContentType"="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\AuxUserType] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\AuxUserType\2] @="工作表" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\AuxUserType\3] @="Microsoft Office Excel 12" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Conversion] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Conversion\Readable] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Conversion\Readable\Main] @="ExcelML12,ExcelWorksheet,Biff12,Biff8" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Conversion\Readwritable] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Conversion\Readwritable\Main] @="ExcelML12,Biff12,Biff8" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\DefaultFile] @="ExcelML12" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet\0] @="3,1,32,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet\1] @="2,1,16,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet\2] @="1,1,1,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet\3] @="NotesDocInfo,1,1,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DataFormats\GetSet\4] @="NoteshNote,-1,1,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DefaultExtension] @=".xlsx, Excel Workbook (*.xlsx)" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DefaultIcon] @="C:\\WINDOWS\\Installer\\{90120000-0030-0000-0000-0000000FF1CE}\\xlicons.exe,1" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\DocObject] @="16" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Implemented Categories] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Implemented Categories\{000C0118-0000-0000-C000-000000000046}] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\InprocHandler32] @="ole32.dll" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Insertable] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\LocalServer] @="C:\\PROGRA~1\\MICROS~2\\Office12\\EXCEL.EXE" "LocalServer"=hex(7):76,00,55,00,70,00,41,00,56,00,58,00,21,00,21,00,21,00,21, 00,21,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58,00, 43,00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,74,00,57,00,7b,00,7e, 00,24,00,34,00,51,00,5d,00,63,00,40,00,49,00,49,00,3d,00,6c,00,32,00,78,00, 61,00,54,00,4f,00,35,00,00,00,00,00 [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\LocalServer32] @="C:\\PROGRA~1\\MICROS~2\\Office12\\EXCEL.EXE" "LocalServer32"=hex(7):76,00,55,00,70,00,41,00,56,00,58,00,21,00,21,00,21,00, 21,00,21,00,21,00,21,00,21,00,21,00,4d,00,4b,00,4b,00,53,00,6b,00,45,00,58, 00,43,00,45,00,4c,00,46,00,69,00,6c,00,65,00,73,00,3e,00,74,00,57,00,7b,00, 7e,00,24,00,34,00,51,00,5d,00,63,00,40,00,49,00,49,00,3d,00,6c,00,32,00,78, 00,61,00,54,00,4f,00,35,00,00,00,00,00 [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\MiscStatus] @="0" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\OfficeCompliant] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Printable] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\ProgID] @="Excel.Sheet.12" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Typelib] @="{00020813-0000-0000-C000-000000000046}" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Verb] [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Verb\0] @="编辑(&E),0,2" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Verb\1] @="打开(&O),0,2" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\Version] @="1.6" [HKEY_CLASSES_ROOT\CLSID\{00020830-0000-0000-C000-000000000046}\VersionIndependentProgID] @="Excel.Sheet"
这上边最重要的其实就是LocalServer32和LocalServer,但光改这2个值是没用的,因为其他值都是有关联的。所以从正常电脑的注册表中导出这些相关项,删除故障电脑注册表中这些相关项,将正常电脑的REG导入故障电脑中,问题解决。
需要注意的是:必须要删除再导入,否则还是有错误,因为WPS加入了多余的键值,不删除直接导入这些WPS键值还是会导致错误提示
本文出自 “sanshow的博客” 博客,请务必保留此出处http://lzlutao.blog.51cto.com/102948/1434978