我在上个月的项目中遇到这个问题,并顺利解决了,提供部分代码供你参考,希望对你有所帮助!
  
procedure TfrmMain.SetCourseColumns;
var
  i,j : Integer;
  strTmp : string;
begin
  j := 68;
  ADOQuery2.Open;
  For i := 0 to ADOQuery2.RecordCount -1 do
  begin
    strTmp := Char(j + I*3) + '4:' + Char(j + I*3 + 2) + '4';
    ECells := ESheet.Cells.Range[strTmp];  //取得合并单元格范围
    Ecells.Cells[1].Value := ADOQuery2.Fields[1].AsString;
    ECells.Merge;  //合并范围内单元格
    SetStyle(ECells);
    strTmp := Char(j + I*3) + '5:' + Char(j + I*3 + 2) + '5';
    ECells := ESheet.Cells.Range[strTmp];
    ECells.Cells[1].Value := '任课教师';
    ECells.Cells[2].Value := '前40名平均分';
    ECells.Cells[3].Value := '前45名平均分';
    SetStyle(ECells);
    ADOQuery2.Next;
  end;
end;//设置单元格样式
procedure TfrmMain.SetStyle(XlRange : Variant);
begin
  XlRange.WrapText := True;
  XlRange.HorizontalAlignment := xlHAlignCenterAcrossSelection;
  XlRange.VerticalAlignment := xlVAlignCenter;
  XlRange.Borders.LineStyle := xlContinuous; //边框类型
  XlRange.Borders.Weight := xlMedium;
  XlRange.Characters.Font.Name := '宋体';  //字体
  XlRange.Characters.Font.FontStyle := '加粗';  //ExcelCellRange.Characters.Font.Size := 9;
  //ExcelCellRange.Characters.Font.Color := clBlue;  //颜色
  //ExcelCellRange.Characters.Font.ColorIndex := xlAutomatic;  //颜色
  //ExcelCellRange := EApp.WorkBooks[1].WorkSheets[1].Range['A1:D4'];
end;