Показать сообщение отдельно
  #1  
Старый 08.02.2017, 16:10
sdmitriy84 sdmitriy84 вне форума
Прохожий
 
Регистрация: 28.07.2015
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию delphi 7 и Excel экспорт в Эксель

Всем форумчанам привет, люди добрые помогите мне разобраться в коде

Код:
procedure TForm9.btn4Click(Sender: TObject);
var
  ExcelApp, sheet, XLA, exRng: variant;
  index, i: integer;
const
  xlContinuous = 1;
  xlThin = 2;
begin
  j := FloatToStr(dbsmlst1.SumCollection.Items[0].SumValue);
  k := StrToInt(j);
  l := FloatToStr(dbsmlst1.SumCollection.Items[1].SumValue);
  n := StrToInt(l);
  b := FloatToStr(dbsmlst1.SumCollection.Items[2].SumValue);
  c := StrToInt(b);
  XLA := CreateOleObject('Excel.Application');
  XLA.workbooks.open(ExtractFilePath(ParamStr(0)) + 'test1.xls');
  XLA.Visible := true;
  XLA.WorkBooks[1].WorkSheets[1].Name := 'Сводный отчет';
  ExcelApp := XLA.workbooks[1].worksheets['Сводный отчет'].columns;
  ExcelApp.columns[1].ColumnWidth := 5;
  ExcelApp.columns[2].ColumnWidth := 35.71;
  ExcelApp.columns[3].ColumnWidth := 10;
  ExcelApp.columns[4].ColumnWidth := 8.14;
  ExcelApp.columns[5].ColumnWidth := 16.86;
  ExcelApp.columns[6].ColumnWidth := 5;
  ExcelApp.columns[7].ColumnWidth := 51.14;
  ExcelApp.columns[8].ColumnWidth := 6.29;
  ExcelApp.columns[9].ColumnWidth := 6.71;
  ExcelApp.columns[10].ColumnWidth := 11.71;
  ExcelApp.columns[11].ColumnWidth := 10.86;
  ExcelApp.columns[12].ColumnWidth := 10;
  ExcelApp.columns[13].ColumnWidth := 7.86;
  ExcelApp := XLA.workbooks[1].worksheets['Сводный отчет'].Rows;
  ExcelApp.Rows[9].font.bold := true;
  ExcelApp.Rows[9].font.size := 10;
  ExcelApp.Rows[9].font.color := clBlue;
  ExcelApp.Rows[9].wraptext := true;
  sheet := XLA.workbooks[1].worksheets['Сводный отчет'];
  Sheet.cells[9, 1] := '№ п\п';
  Sheet.cells[9, 2] := 'ФИО застрахованного';
  Sheet.cells[9, 3] := 'Дата рождения';
  Sheet.cells[9, 4] := 'Подразделение';
  Sheet.cells[9, 5] := 'Полис №';
  Sheet.cells[9, 6] := 'Код усл.';
  Sheet.cells[9, 7] := 'Наименование усл.';
  Sheet.cells[9, 8] := 'Кол-во';
  Sheet.cells[9, 9] := 'Цена';
  Sheet.cells[9, 10] := 'Дата оказания';
  Sheet.cells[9, 11] :='Код исполнителя';
  Sheet.cells[9, 12] :='Шифр забол-я';
  Sheet.cells[9, 13] :='Итого';
  index := 10;
  with ds1.DataSet do
  begin
    First;
    for i := 0 to RecordCount -1 do
    begin
      sheet.cells[4, 1] := 'добровольного медицинского страхования за период c ' + Fields.Fields[31].AsString + ' по ' + Fields.Fields[32].AsString;
      sheet.cells[index, 1] :=i+1;
      sheet.cells[index, 2] := Fields.Fields[3].AsString + ' ' + Fields.Fields[4].AsString + ' ' + Fields.Fields[5].AsString;;
      sheet.cells[index, 3] := Fields.Fields[7].AsString;
      sheet.cells[index, 4] := Fields.Fields[14].AsString;
      sheet.cells[index, 5] := Fields.Fields[11].AsString;
      sheet.cells[index, 6] := Fields.Fields[25].AsString;
      sheet.cells[index, 7] := Fields.Fields[36].AsString;
      sheet.cells[index, 8] := Fields.Fields[26].AsString;
      sheet.cells[index, 9] := Fields.Fields[27].AsString;
      sheet.cells[index, 10] := Fields.Fields[28].AsString;
      sheet.cells[index, 11] := Fields.Fields[41].AsString;
      sheet.cells[index, 12] := Fields.Fields[47].AsString;
      sheet.cells[index, 13] := Fields.Fields[33].AsString;
      sheet.cells[index, 14] := index;
      Inc(index);
      Next;
    end
  end;
  exRng := Sheet.Range[Sheet.Cells[9, 1], Sheet.Cells[index, 13]];
  exRng.Borders.LineStyle := xlContinuous;
  exRng.Borders.Weight := xlThin;
  exRng.Rows.AutoFit;
  XLA.WorkBooks[1].Sheets[1].Cells[10 + k, 13].value := n;
  XLA.WorkBooks[1].Sheets[1].Cells[10 + k, 8].value := c;
 //  XLA.Visible := true;
end;

сам код рабочий только мне нужно еще при экспорте в excel сделать проверку повторяющейся информации в ячейках и обьеденить ячейки, которые повторяются, а так же сделать суммирование поля "итого" повторяющихся ячеек и вывести в конце этих ячеек. Сколько пытаюсь сделать не получается.

Заранее благодарен всем кто откликнется...))
Ответить с цитированием