Excel 二次开发系列(1): Excel 编成模型
Excel 编程模型的说明
引用徐文兵的博客: http://www.cnblogs.com/macroxu-1982/archive/2006/11/21/567305.html
在这里 ,就大概描述了在Excel 编程中常用的对象的层次关系。
Excel Application 代表整个 Microsoft Excel 应用程序,
WorkBook 代表 Microsoft Excel 工作簿
Range 代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。
Areas 选定区域内的子区域或连续单元格块的集合。
Borders 代表对象的边框。
Characters 代表包含文本的对象中的字符。可用 Characters 对象修改包含在完整文本字符串中的任意字符序列。
Font 包含对象的字体属性(字体名称、字体大小、字体颜色等)。
ListRow 代表列表对象中的一行。
Errors 表示区域的电子表格错误。
Excel进程在程序中处理
徐先生在Excel进程中出理的方式用了时间推算法,虽然不失为一种方法,但是这不是一个很好的办法,因为当客户在这个时间内打开一个Excel 文档的时候,在运用程序关闭的同时也关闭了用户打开的这个程序,这是用户不想看到的,当然,在多用户的条件下运行,就像徐说的,也是有问题的。我们知道,Excel编程调用了COM 组建,要释放其资源是一件很头疼的事情,除此之外,在Debug下,调式程序也是很难的意见事情,因为有时候行号和当前的光标不匹配,给调式带来视觉误差。调式也是要一定技巧的,以后有时间慢慢说。回到资源释放问题:我也查阅了很多资料,一般有以下几种解决方法:
(1). 在对象退出之前调用系统已有方法进行释放。例如:
Excel.Application app = new Excel.Application();//open one Excel application
.............
app.Quit();//quit the Excel application and release resource
一般的话只要调用这个Quit()这个方法,资源一般都会释放。
(2). 为确宝资源的释放,可以在运行程序退出后,在RunTime再次对垃圾进行回收,可以用如下方法:

经过测试一般是没什么问题的,注意释放的顺序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述