作者在 2015-03-13 14:34:16 发布以下内容
Set Talk Off
* -- 创建 4 个测试用临时表
Create Cursor A01 (f1 C(20))
Create Cursor A02 (f1 C(20))
Create Cursor A03 (f1 C(20))
Create Cursor A04 (f1 C(20))
For ii = 0 To 3
cAlias = Textmerge('A0<<ii+1>>')
For m.jj = 1 To 10000 && 每个测试表插入 20 条测试用记录
Insert Into (cAlias) (f1) Values (cAlias + Sys(2015))
Endfor
Goto Top In (cAlias)
Endfor
* -- End of 创建测试用表
* 开始将记录导入到 Excel 中
Local oo As Excel.Application
oo = Newobject('Excel.Application')
Do While oo.Workbooks.Count < 1 && 确保至少有 1 个工作簿
oo.Workbooks.Add()
Enddo
Do While oo.Workbooks(1).Sheets.Count < 4 && 确保有 4 个工作表
oo.Sheets.Add(Null, oo.Workbooks(1).Sheets(oo.Sheets.Count))
Enddo
_使用复制粘贴法 = .T.
s1 = Seconds()
For ii = 1 To 4 && 循环将 4 个表的数据复制,粘贴到 4 个工作表
cAlias = 'A' + Padl(ii, 2, '0')
s0 = Seconds()
If _使用复制粘贴法
_vfp.DataToClip(cAlias, 0xffff, 3) && 将 A0? 表的记录复制到剪贴板
oo.Workbooks(1).Sheets(ii).Paste && 再从剪贴板粘贴到工作表
Else
oo.Workbooks(1).Sheets(ii).Select
Select (cAlias)
Scan
oo.cells[recno(),1].value = f1
EndScan
EndIf
? '填充 Sheet' +Padl(ii,1) + ' 耗时:' + Ltrim(Str(Seconds()-s0,10,4))
_cliptext = ''
Endfor
? '*** 填充 40000 行数据共耗时:' + Transform(Seconds()-s1)
oo.Visible = .T. && 看看结果
* ...
* 保存并退出