如何为Excel的最后一行加上统计行?(100分)

  • 主题发起人 主题发起人 skyhorse_zjj
  • 开始时间 开始时间
S

skyhorse_zjj

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]如
销售小组1 销售小组2
商品1 10 20
商品2 20 15

合计 30 35//此行如何编程加上
 
算出此列所有单元格的值,再写到此列的最后一个单元格
 
问题是如何做?
 
用 OLE 读取 EXCEL 文档。
procedure TForm1.Button1Click(Sender: TObject);
var ExcelApp,MyWorkBook: OLEVariant;
i,j,n: Integer;
totalnum : real;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已 经安装EXCEL.','',
mb_OK+mb_IconStop);
Exit;
end;
totalnum := 0;
n := 总行数
MyworkBook:= ExcelApp.workBooks.Open(ExtractFileDir(Application.ExeName)
+ '/' + Edit1.Text + '.xls');
for i := 0 to n-1 do //n代表行数
begin

totalnum := totalnum+MyWorkBook.WorkSheets[1].Cells[2,i].Value;

end;
MyWorkBook.WorkSheets[1].Cells[3,n].Value := totalnum;

ExcelApp:=Unassigned; //释放VARIANT变量
end;
 
gz更好的解决方法!
 
再合计栏 输出字符 =sum()
 
这个问题我曾经做过的
1。首先利用一个变量来记录你存储为EXCEL数据的记录条数,这个变量的主要目的是
可以知道合计的行数是第几行
2。如何得到各个字段的合计值?我建议在query查询的时候,你可以用如下的形式
select Qty,sum(num) as num1 from tablename
就是在查询的时候统计了,然后依据你在EXCEL中需要统计的列的名字下面做几个变量,赋值
过去就可以了,很简单的。
 
这是我将query的内容发到EXCEL程序的一小段。希望对你有帮助
case query1.Fields[i-1].DataType of
ftinteger,
ftcurrency,
ftfloat:ExcelID.ActiveSheet.Cells[row,col].value:='=sum(a1:a30)';
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部