因工作中很多时候要导出Excel的Report.每份Excel里面都带有图表,分多个Sheet,使用文件流的方式虽然速度很快,但格式不好控制,使用过NativeExcel与XLSReadWriteII控件,都不理想.下面的方法,速度改善很多!
procedure Save_Exce(sheet: Variant);
var
range,sData: Variant;
i, j, citem,iCount: Integer;
begin
sData:=varArrayCreate([1,1,1,iCount-1],varVariant); //定义数组
iCount := SGAll.ColCount;
sheet.cells[19, 1] := 'Plant ' + cbbPlant.Text;
//一行一行写,每一行的格式可以设置
for i := 1 to SGAll.RowCount - 2 do
begin
for j := 1 to iCount - 1 do
begin
sData[1,j]:= SGAll.Cells[j, i];//一行数据。也可以为多行数据
end;
range:=sheet.Range[sheet.cells[i , 1],sheet.cells[i , iCount-1]]; //选择要写的Execl的单元格
range.Value2:=sData; //写入数据
range.borders.linestyle := xlcontinuous;
range.Font.Name := 'Tahoma';
range.Font.Size := 8.5;
end;
end;