找回密码
 加入
搜索
查看: 5413|回复: 4

[效率算法] 想把一个EXCEL的全部数据复制粘贴到另一个表里

  [复制链接]
发表于 2013-6-3 21:49:52 | 显示全部楼层 |阅读模式
我用_ExcelReadArray和_ExcelWriteArray在2007里面效率实在太慢了,还有没有别的办法啊
发表于 2013-6-4 15:05:44 | 显示全部楼层
另一个表里还是另一个工作簿里,说明不太明确
 楼主| 发表于 2013-6-6 23:08:45 | 显示全部楼层
回复 2# kevinch


    目的就是把几张表(多个文件)合并在一起,表头字段都是一样的
发表于 2013-6-7 13:42:30 | 显示全部楼层
本帖最后由 骗子 于 2013-6-7 13:43 编辑

;读取内容的数组,然后再将数组写入表中,速度非常快
Local $aArray1 = $oExcel.activesheet.range("a" & $hanghao + 95).resize(1, 198).value ;读取               
$oExcel.activesheet.range('A95:GP95').value = $aArray1 ; 使用上面的数字来 填写表格内
发表于 2013-6-7 14:24:34 | 显示全部楼层
用move试试,我也是在论坛上学到的,呵呵,不解释! 几万行的数据一般在几秒内完成

给个栗籽  声明一下:我这个是学习别人的,非原创,但现在没找到作者,因此没法感谢原创,请原作者看到或者认识原创的人不要骂我,相互学习哦!

$path=@ScriptDir&"\汇总.xlsx"

$pathA=@ScriptDir&"\A.xls"
$pathB=@ScriptDir&"\B.xls"

$oExcel = ObjCreate("Excel.Application")
$oExcel.Visible = True 
$oExcel.DisplayAlerts = False
; ############# Add New xlsx file #####################################
$oWorkbook_o=$oExcel.Workbooks.Add
$oWorkbook_o.SaveAs($path,51);51表示xlsx文件
$oWorkbook_o.Close

$oWorkbook = $oExcel.Workbooks.Open($path)        
$oWorkBook1 = $oExcel.WorkBooks.Open($pathA)
$oWorkBook2 = $oExcel.WorkBooks.Open($pathB)

$oWorkBook1.WorkSheets(1).move($oWorkbook.Worksheets(1))
$oWorkBook2.WorkSheets(1).move($oWorkbook.Worksheets(2))
$oWorkbook.Sheets(1).Name = "AAAA"
$oWorkbook.Sheets(2).Name = "BBBB"
;~ $oWorkbook.Sheets(3).Name = "汇总"
$oWorkbook.Sheets("Sheet2").delete
$oWorkbook.Sheets("Sheet3").delete
$oWorkbook.Save
$oExcel.Quit

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 02:20 , Processed in 0.089174 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表