08.02.2017, 16:10
|
Прохожий
|
|
Регистрация: 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 сделать проверку повторяющейся информации в ячейках и обьеденить ячейки, которые повторяются, а так же сделать суммирование поля "итого" повторяющихся ячеек и вывести в конце этих ячеек. Сколько пытаюсь сделать не получается.
Заранее благодарен всем кто откликнется...))
|