for i := 0 to 4 do begin sheet.cells[1, 2 * i + 1].value := '号码'; sheet.cells[1, 2 * i + 2].value := '金额'; ExcelApp.ActiveSheet.Columns[2 * i + 1].ColumnWidth := 5; ExcelApp.ActiveSheet.Columns[2 * i + 2].ColumnWidth := 9; sheet.cells[1, 2 * i + 1].HorizontalAlignment := 3; sheet.cells[1, 2 * i + 2].HorizontalAlignment := 3 end; ExcelApp.ActiveSheet.Rows[1].Font.Bold := True; ExcelApp.ActiveSheet.Rows[1].Font.Size := 12; //以上生成表头 num := 0; numStr := ''; for i := 1 to 10 do //行 begin for j := 1 to 5 do //列 begin //先计算一下当前号码 Inc(num); if num < 10 then numStr := '0' + IntToStr(num) else numStr := IntToStr(num); //i从1开始算,因为行下标不是从0开始的,再+1是为了处理表头 //j也从1开始算,因为列下标不是从0开始的,*2-1正好是对应的列下标 sheet.cells[ i+1, j * 2 - 1].value := numStr ;
end;
end;我没有测试,思路是这样的,有什么问题追问吧!
导出excel文件的代码我到有,但就是不知道是不是你要的procedure TxstjForm.N9Click(Sender: TObject); ////数据导出 var pExpClass:Tdbgridehexportclass; //导出文件类型 pExt:string; //导出文件扩展名 pExpFile:string; //导出文件路径及文件名称 pExpFileExt:string; //savedialog1返回的文件名的扩展名 begin //在窗体uses中,添加新的引用单元:DBGridEhImpExp(以下两个引用单元也必须存在:DBGridEh, EhLibBDE)。 savedialog1.FileName:=''; //清空SaveDialog1默认文件名 if savedialog1.Execute then //如果SaveDialog1正确执行 begin case savedialog1.FilterIndex of //根据FilterIndex设置导出文件类型和扩展名 1: begin pexpclass:=TDBgridehexportastext; pext:='text'; end; 2: begin pexpclass:=Tdbgridehexportasxls; pext :='xls'; end; else pexpclass:=nil ;pext:=''; end; if pexpclass<>nil then //如果导出文件类型已经被正确设置 begin pexpfile:=trim(savedialog1.FileName); pexpfileext:=copy(pexpfile,length(pexpfile)-2,3); //判断返回的文件名称是否已经包含正确的扩展名,如果没有则添加正确的扩展名 if uppercase(pexpfileext) <> uppercase(pext) then pexpfile:=pexpfile + '.'+pext; savedbgridehtoexportfile(pexpclass,dbgrideh1,pexpfile,true); //按现有设置导出全部据 messagedlg('数据已成功导出到 '+pexpfile,mtinformation,[mbok],0); end end end;
for i := 0 to 9 do
for j := 1 to 5 do
结果 := i*5+j这个z不就等于i*5 + j么。。
Sheet[X ,Y ] X Y 值 要怎么算的?
这样是不对的
EXCEL 表格是从1 开始的。 有表格 行是2开始的
begin
sheet.cells[1, 2 * i + 1].value := '号码';
sheet.cells[1, 2 * i + 2].value := '金额';
ExcelApp.ActiveSheet.Columns[2 * i + 1].ColumnWidth := 5;
ExcelApp.ActiveSheet.Columns[2 * i + 2].ColumnWidth := 9;
sheet.cells[1, 2 * i + 1].HorizontalAlignment := 3;
sheet.cells[1, 2 * i + 2].HorizontalAlignment := 3
end;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.Size := 12;
//以上生成表头
num := 0;
numStr := '';
for i := 1 to 10 do //行
begin
for j := 1 to 5 do //列
begin
//先计算一下当前号码
Inc(num);
if num < 10 then
numStr := '0' + IntToStr(num)
else
numStr := IntToStr(num);
//i从1开始算,因为行下标不是从0开始的,再+1是为了处理表头
//j也从1开始算,因为列下标不是从0开始的,*2-1正好是对应的列下标
sheet.cells[ i+1, j * 2 - 1].value := numStr ;
end;
end;我没有测试,思路是这样的,有什么问题追问吧!
var
pExpClass:Tdbgridehexportclass; //导出文件类型
pExt:string; //导出文件扩展名
pExpFile:string; //导出文件路径及文件名称
pExpFileExt:string; //savedialog1返回的文件名的扩展名
begin
//在窗体uses中,添加新的引用单元:DBGridEhImpExp(以下两个引用单元也必须存在:DBGridEh, EhLibBDE)。
savedialog1.FileName:=''; //清空SaveDialog1默认文件名
if savedialog1.Execute then //如果SaveDialog1正确执行
begin
case savedialog1.FilterIndex of //根据FilterIndex设置导出文件类型和扩展名
1: begin pexpclass:=TDBgridehexportastext; pext:='text'; end;
2: begin pexpclass:=Tdbgridehexportasxls; pext :='xls'; end;
else
pexpclass:=nil ;pext:='';
end;
if pexpclass<>nil then //如果导出文件类型已经被正确设置
begin
pexpfile:=trim(savedialog1.FileName);
pexpfileext:=copy(pexpfile,length(pexpfile)-2,3); //判断返回的文件名称是否已经包含正确的扩展名,如果没有则添加正确的扩展名
if uppercase(pexpfileext) <> uppercase(pext) then
pexpfile:=pexpfile + '.'+pext;
savedbgridehtoexportfile(pexpclass,dbgrideh1,pexpfile,true); //按现有设置导出全部据
messagedlg('数据已成功导出到 '+pexpfile,mtinformation,[mbok],0);
end
end
end;
savedbgridehtoexportfile这个函数你都没有贴出来,上面的代码都没用啊!!!!