【VSTO】Office开发中遇到的兼容性检查问题
事情是这样的:
我们的一个应用程序需要通过VSTO代码方式操作本地的Excel,包括打开工作簿,生成新的工作簿,设置数据,并且保存为新文件等等。
该程序在Excel 2003的环境下没有任何问题,但是在Excel 2007或者是Excel 2010中就老是遇到中途被卡住的状况。
究其原因,是因为我们想将文件继续保存为Excel 2003格式,但Excel 2007或者Excel 2010默认会有一个兼容性检查的功能。如下
如果将“Check compatiblity when saving this workbook”的选项关闭,则问题可以解决。
但是,如果你无法确保用户那边关闭了该选项,也可以通过程序的方式临时关闭检查
有两种方式实现这样的需求
第一种:在Application级别关闭警告
If (app Is Nothing) Then app = New Excel.Application app.Interactive = False app.UserControl = False app.DisplayAlerts = False app.Visible = False app.ScreenUpdating = False End If
第二种:在Workbook级别关闭警告
wb.CheckCompatibility=False
还有一个情况就是,如果你关闭了警告(不管是手工地,还是代码关闭),却又想恢复该选项。要按照下面这样做
在上面的对话框中,点击“Check Compatibility”,你将可以继续勾选上这个选项。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
2009-06-08 重复输入某个字符(C++,C#)
2009-06-08 怎么理解符号整数的取值范围(C++)
2009-06-08 数据类型总结 (C++,C#)
2009-06-08 位运算符和逻辑运算符(C++,C#):与和逻辑与,非和逻辑非
2009-06-08 C++学习中遇到的问题及其解决方案
2009-06-08 老调重弹之整除与实数除
2009-06-08 在C++中定义常量的两种方法的比较