关于Excel文件合并问题(100)

  • 主题发起人 主题发起人 龙之吻
  • 开始时间 开始时间

龙之吻

Unregistered / Unconfirmed
GUEST, unregistred user!
现有多个格式相同的Excel文件 A B C请问如何把B文件和C文件的WorkSheet复制并追加到A文件的WorkSeet后面
 
有几个这种文件?很多吗?10个还是几十个?
 
可能有几十个
 
这个工作比较频繁而且数据量大,具体数据量不是很清楚客户要求写个合并并计算的工具
 
几十个也不是很多,你一次选择10个并回车打开后手工操作一下也不慢,未必比你写代码慢多少。除非这种情况经常发生,但是如果真是这样,是否有别的原因呢?硬要写代码的话建议用 TMS 的 AdvStringGrid 控件,依次导入Excel后再导出成Excel。
 
建议用 TMS 的 AdvStringGrid 控件,依次导入Excel后再导出成Excel。
 
我直接用CreateOleObject('Excel.Application')的方式来处理的循环打开A文件后所有的文件然后再拷贝追加到另一个A文件的WorkBook后面关键就是不知道怎么个Copy法
 
那就试试:a.拷贝整个工作表: ExcelApp.ActiveSheet.Used.Range.Copy;b.拷贝指定区域: ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;c.从A1位置开始粘贴: ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;d.从文件尾部开始粘贴: ExcelApp.ActiveSheet.Range.PasteSpecial;
 
var MyExcelApp, SourceWorkbook, TargetWorkbook: Variant;begin MyExcelApp := CreateOleObject('Excel.Application'); MyExcelApp.Visible := True; SourceWorkbook := MyExcelApp.Workbooks.Open('d:/b.xls'); //源文件 TargetWorkbook := MyExcelApp.Workbooks.Open('d:/a.xls');//目标文件 SourceWorkbook.Sheets[1].Copy(null, TargetWorkbook.Sheets[TargetWorkbook.Sheets.Count]);//将源文件中的第一个工作表复制到目标文件中的最后一个工作表之后。 TargetWorkbook.Sheets[TargetWorkbook.Sheets.Count].Name := '工作表名称'; //给复制后的工作表定义名称。 MyExcelApp.quit;end;
 
用ado控制最好,因为excel有行数限制,你在不停的追加的同时要考虑这个...
 
问题已解决谢谢
 
后退
顶部