您的位置:首页 > 其它

使用数组快速填充Excel

2009-02-09 02:01 656 查看
一般我们在程序中操作Excel时,逐单元格填充时,速度非常之慢。

其实Excel的Range可以直接绑定数组,速度极快。在下面的 VB6 示例中,填充一个1000*10的区块,

逐单元格方式要20~25秒,而数组方式瞬间内即可完成。

"

DoEvents

Label2(0).Caption = Now()

For i = 1 To 1000

For j = 1 To 10

xrange(i, j).Value = a(i, j)

'DoEvents

Next

'DoEvents

Next

Label3(0).Caption = Now()

Label9.Caption = "逐格填充完毕"

Label5(0).Caption = DateDiff("s", CDate(Label2(0).Caption), CDate(Label3(0).Caption)) & " 秒"

DoEvents

'-------------------------------------------------------------

'直接填充

Label9.Caption = "正在进行数组填充"

DoEvents

Label2(1).Caption = Now()

'##################################

'直接把数据给区块

'需要注意的是,这个区块接受数组是从序号0开始的.用的时候注意边界

oWSheet.Range("L1:U1000") = a

'##################################

Label3(1).Caption = Now()

Label9.Caption = "数组填充完毕"

Label5(1).Caption = DateDiff("s", CDate(Label2(1).Caption), CDate(Label3(1).Caption)) & " 秒"

DoEvents

Dim fname As String

fname = App.Path & "\" & Format(Now, "yyyymmddhhMMss") & ".xls"

oXLSAPP.Workbooks(1).SaveAs fname

Label9.Caption = "文件保存到 " & fname

DoEvents

Set oXLSAPP = Nothing

End Sub

示例代码下载:

http://files.cnblogs.com/babyt/APP20090208EXCEL.rar

另外特别推荐:

特别推荐:纯VB.NET代码直接生成Excel文件(不需要Excel)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: