更改Excel相关注册表

时间:2024-05-18 19:54:37

更改Excel相关注册表

使用WPF开发了一个桌面端软件,使用Microsoft官方的Office.dll实现导出Excel报告的功能。但部分用户因为各种原因,如重复安装/卸载WPF和Office,导致相关注册表混乱,使软件无法正常导出Excel报告。经过排查找到手动更改注册表方法。

有注册表目录

  1. 使用快捷键“win”+“R”打开对话框
  2. 在弹出的对话框中输入“regedit”打开
  3. 在“注册表编辑器”中按以下顺序打开相应的注册表信息:“计算器”->“HKEY_CLASSES_ROOT”->“TypeLib”->“{00020813-0000-0000-C000-000000000046}”。
  4. 双击打开“{00020813-0000-0000-C000-000000000046}”,如下图。正常情况下,安装的Office 2013的电脑,下一级会显示为“1.8”。若您的电脑中没有显示“1.8”,则请您在电脑中所显示的其它版本下同样进行下列操作,将对应的信息反馈给我。若您的电脑在在该级目录下没有任何值,甚至没有“{00020813-0000-0000-C000-000000000046}”目录,则您可参考后文中关于手动创建相关目录的操作。
  5. 请单击选中1.8,查看右侧的具体信息,是否如下表所示:
名称 类型 数据
默认 REG_SZ Microsoft Excel 15.0 Object Library
PrimaryInteropAssemblyName REG_SZ Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C

PS:因我这边电脑是office2007,所以图片中显示的是1.6,数据对应的版本号为12.0
更改Excel相关注册表
6. 选中“1.8”之下的“0”->“win32”或“win64”,可在右侧查看到对应的Excel的程序的所在目录。一般安装在Program file(x86)目录下为win32,安装在Program file目录下为win64。选中“1.8”下的“HELPDIR”,右侧也显示为Excel 的安装目录。如下图所示:
更改Excel相关注册表

无注册表目录

  1. 正常情况下,对应信息所在目录层级如下:“计算机”->“HKEY_CLASSES_ROOT”->“TypeLib”->“{00020813-0000-0000-C000-000000000046}”->“1.8”。其中前三级在电脑中一定存在,“{00020813-0000-0000-C000-000000000046}”因电脑故障可能不存在,“1.8”未正确安装相应版本excel会不存在。对于不存在的目录,可鼠标选中上级目录,然后点击鼠标右键,选择“新建”->“项”,然后填入与上述目录相同的名称即可。从2步开始,以新建“1.8”为例,详细阐述新建的步骤。

  2. 新建“1.8”后,选中“1.8”,右键新建“字符串值”,然后在右侧对应新建的数据中填写“PrimaryInteropAssemblyName”。如下图:
    更改Excel相关注册表

  3. 然后选中右侧区域中的“默认”,右键选择“修改”。在“数值数据”中填入“Microsoft Excel 15.0 Object Library”,点击“确认”。如下图:
    更改Excel相关注册表

  4. 选中“PrimaryInteropAssemblyName”,右键选择修改。在“数值数据”中填入“Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C”,点击“确认”。如下图所示:
    更改Excel相关注册表

  5. 然后重新选中“1.8”,右键新建“项”,“项”名称为“0”。选中“0”,右键新建“项”,“项”名称为“win32”或“win64”。具体名称根据Excel所在目录确定,在Program file(x86)目录下为win32,在Program file目录下为win64。
    更改Excel相关注册表

  6. 然后选中“win32”或“win64”,选择右侧“默认”,右键修改。填写“数值数据”为Office安装时程序Excel.exe所在路径,如下图:
    更改Excel相关注册表

  7. 之后在“1.8”中新建项“FLAGS”和“HELPDIR”。其中“FLAGS”默认数值数据设置为“0”;“HELPDIR”设置默认数值数据为Office安装时程序Excel.exe所在路径。如下图
    更改Excel相关注册表