xwt620 发表于 2013-6-3 21:49:52

想把一个EXCEL的全部数据复制粘贴到另一个表里

我用_ExcelReadArray和_ExcelWriteArray在2007里面效率实在太慢了,还有没有别的办法啊

kevinch 发表于 2013-6-4 15:05:44

另一个表里还是另一个工作簿里,说明不太明确

xwt620 发表于 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 ; 使用上面的数字来 填写表格内

xlj310 发表于 2013-6-7 14:24:34

用move试试,我也是在论坛上学到的,呵呵,不解释! 几万行的数据一般在几秒内完成

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

$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

页: [1]
查看完整版本: 想把一个EXCEL的全部数据复制粘贴到另一个表里