如何通过Delphi将EXCEl表中的数据进行分类汇总。(100分)

  • 主题发起人 主题发起人 ZeroYML
  • 开始时间 开始时间
Z

ZeroYML

Unregistered / Unconfirmed
GUEST, unregistred user!
如何通过Delphi将EXCEl表中的数据进行分类汇总。请给个代码说明一下,谢谢了。
 
这个是我用宏录制的,你将它改成Delphi的就成了。
Sub Macro1()
Range("A10:D20").Select
Selection.Subtotal GroupBy:=1, Function:=xlCount, TotalList:=Array(1, 2, 3, 4), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub
Delphi的大概就是:
Sheet.Range['A10:D20'].Select;
Sheet.Selection.Subtotal(GroupBy:=1, Function:=xlCount, TotalList:=VariantArrayCreate(1, 2, 3, 4), Replace:=True, PageBreaks:=False, SummaryBelowData:=True);
随手写的,可能存在错误,你修改一下吧。
基本上,采用自动化是可以完成的。
 
还有一种笨方式,把EXCEL文件当成数据库打开,然后使用SQL语句进行汇总。
with datam.DataM1do
//首先查找数据库中是否已经存在。如果存在,则修改已经存在的数据。
begin
ExcelConnection.Close;
ExcelConnection.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Excel Files;'+
'DBQ='+FileName+';DriverId=790;MaxBufferSize=2048;PageTimeout=5;"';
ExcelConnection.Open;
tt:=tstringlist.Create;
ExcelConnection.GetTableNames(tt,true);
SheetName:=tt.Strings[0];
ExcelQuery1.Close;
ExcelQuery1.SQL.Clear;
ExcelQuery1.SQL.Add('select * from ['+SheetName+'] ');
//把你的汇总SQL语句放这里。
ExcelQuery1.Open;
//打开EXCEL文件.
 
后退
顶部