windows C++ 解决Office打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”
一、手动修改注册表解决:
1、打开注册表编辑器
方法:开始 -> 运行 -> 输入regedit -> 确定
2、找到注册表子项
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security
3、在右侧空白处点击鼠标右键,选择“新建 -> DWORD值(D)”,输入“ExtensionHardening”点击确定。
4、用鼠标右键点击ExtensionHardening,然后单击“修改(M)”,在数值数据中填写“0”即可确定。
5、关闭注册表编辑器,再次打开xls文件看看是不是提示是不是不见了?
小知识:ExtensionHardening设置的值的数据设置:
* 0:不检查文件扩展名和文件类型并绕过该函数的警告消息。
* 1:检查文件扩展名和文件类型。如果它们不匹配会显示警告消息。
* 2:检查文件扩展名和文件类型。如果它们不匹配不要打开该文件。
二、程序解决第一步:
枚举注册表找到excel安装路径:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.exe\\Path
第二步:
拼接excel路径并读取文件版本信息
第三步:
写注册表,参考“手动修改注册表解决”
代码示例:
//str = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Excel.exe\\Path" 注册表的值;long nSize = lstrlen(str.c_str());if(str[nSize - 1] == '\\'){str += _T("EXCEL.EXE");}else{str += _T("\\EXCEL.EXE");}bool bFind = false;long nVersion = 0;//excel的版本号VS_FIXEDFILEINFO *pVsInfo;unsigned int iFileInfoSize = sizeof(VS_FIXEDFILEINFO);int iVerInfoSize = GetFileVersionInfoSize(str.c_str(), NULL);if(iVerInfoSize != 0){char *pBuf = NULL;while(!pBuf){try{pBuf = new char[iVerInfoSize];}catch(...){}}if(GetFileVersionInfo(str.c_str(), 0, iVerInfoSize, pBuf)){if(VerQueryValue(pBuf, _T("\\"), (void **)&pVsInfo, &iFileInfoSize)){bFind = true;nVersion = HIWORD(pVsInfo->dwFileVersionMS);}}delete[] pBuf;pBuf = NULL;}if(bFind){TCHAR tcData[2048] = {0};_stprintf(tcData, _T("Software\\Microsoft\\Office\\%d.0\\Excel\\Security\\ExtensionHardening"), nVersion);//写注册表}
windows C++ 解决Office打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”相关推荐
- Office2007打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”的解决办法
原文地址为: Office2007打开文件提示"您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致"的解决办法 打开文件时提示"您尝试打开的文件xxx.xl ...
- 打开EXCEL总提示 您尝试打开的文件*.xls格式与文件扩展名指定的格式不相符
用C#导出来excel,打开时总是有个提示: 您尝试打开的文件"test.xls"的格式与文件扩展名指定的格式不一致.打开文件前请验证文件没有损坏且来源可信.是否立即打开该文件? ...
- (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致...
1.打开注册表编辑器 方法:开始 -> 运行 -> 输入regedit -> 确定2.找到注册表子项 HKEY_CURRENT_USER\Software\Microsoft\Off ...
- office2007你尝试打开的文件.xls的格式与文件扩展名指定的格式不一致
修改注册表解决: 1.打开注册表编辑器 方法:开始 -> 运行 -> 输入regedit -> 确定 2.找到注册表子项 HKEY_CURRENT_USER\Software\Mic ...
- Office2007打开文件提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致”的解决办法...
添加如下注册表 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\ ...
- C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致。
方法一(不提倡) 产生此问题的原因: 我写入Excel的不是正常的Excel格式,说白了就是我用Response.WriteFile("k:\\StudentMarks.xls") ...
- 计算机提示pdf不能加载,Win7打开PDF文件提示无法自定义打开程序的解法
用户在 ghost Win7系统 打开PDF文件时提示无法自定义打开程序方式,一般打开程序系统会默认打开方式,但是有时候默认的 打开方式 并不适合当前的文件.Win7系统打开PDF文件提示无法自定义打 ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法...
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- Java解决服务器下载excel文件提示损坏无法打开的问题
一开始通过请求的方式写了个下载文件的工具代码,可以参考下面链接 https://blog.csdn.net/z2014ypd/article/details/88417757 这种方式在项目打包发布后 ...
- office 2010打开word文件提示以安全模式打开
问题出现:打开word文件时出现如下图所示对话框. 如果是第一次打开一个文件,那么点击是,就会打开一个空白的word文档,如果选择否,那么就打开这个文档了,但是显示文档处于安全模式:可是第二次打开这个 ...
最新文章
- Swift 中使用 SQLite——新增数据
- @ResponseBody 注解
- Core禁用BIP70或只为制造闪电网络硬需求
- springboot mysql 事务_springBoot(14):使用SQL关系型数据库-事务处理
- [转载]秀脱linux实战笔记linux-kernel-3.0.3实战篇
- Lync Server 2013之初次安装
- 用webpack构建一个常规项目,好处和坏处分析
- nginx-启动gzip、虚拟主机、请求转发、负载均衡
- 图像的阈值分割(迭代法选择阈值)
- filterwriter_Java FilterWriter flush()方法与示例
- 怎么判断一个机器可以跑多少用户和并发_美逛微信云发单机器人申请方法及其问题解答汇总...
- 【个人笔记】《知了堂》node.js简介及创建应用
- 数据结构 - 字符串的模式匹配
- ironpython怎么编译_将IronPython WPF项目编译为
- 使用OpenCV进行高动态范围(HDR)成像(C ++ / Python)
- C语言程序设计(郝斌)
- 2018年​最酷的APP手机UI设计趋势
- 推荐给后端工程师进阶的几本技术书籍
- 【转载】Java语言中的参数传递
- AJ-Report 数据源、数据集用法总结