Excel No Responding 的解决方案(Slow Addin-减少访问次数)

  Excel Add-in的program运行时经常会遇到No responding。 原因可能是low-Addin 引起的。那么问题来了,如何让我们的程序跑的快点呢?

常见优化的三个思考方向:

1. 代码逻辑优化(一般大家的思考逻辑都是差不多的,可能只有大神才能有质的改变)

2. 改变访问Excel的方式(效果显著, OLEDB, EPPLUS, COM等等)

3. 减少访问次数

当项目处于后期时,1和2可能已经固定下来了。 下面讨论如何减少访问次数以及读写分离(类似于数据库的主从分离思想,- -!)

思路来源:点击打开链接

Public Class labReduceAccess

    'Desc: Fetch info from ws1,ws2 and ws3. Put the processed data into ws3
    'Author: ZhenYang Cheng
    'Date: 01/23/2015
    'Input: 
    'Output:

    Shared Sub process()
        Dim ws_Lab1 As New Microsoft.Office.Interop.Excel.Worksheet
        Dim ws_Lab2 As New Microsoft.Office.Interop.Excel.Worksheet
        Dim ws_Lab3 As New Microsoft.Office.Interop.Excel.Worksheet

        Dim ws_number As Integer
        If GlobalDataAndFunction.Instance().IsWorksheetExists(Singleton.Instance().Application, "ws_Lab1") Then
            ws_number = GlobalDataAndFunction.Instance().GetWorksheetNo(Singleton.Instance().Application, "ws_Lab1")
            ws_Lab1 = Singleton.Instance().Application.Worksheets(ws_number)
        End If

        If GlobalDataAndFunction.Instance().IsWorksheetExists(Singleton.Instance().Application, "ws_Lab2") Then
            ws_number = GlobalDataAndFunction.Instance().GetWorksheetNo(Singleton.Instance().Application, "ws_Lab2")
            ws_Lab2 = Singleton.Instance().Applicatio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值