ОА "Микротехника"

Экспорт в XLSX

function SaveAsExcelFile(stringGrid: TstringGrid; FileName: string): Boolean;
const
xlWBATWorksheet = -4167;
var
Row, Col, i: Integer;
GridPrevFile: string;
XLApp, Sheet: OLEVariant;
begin
Result := False;
XLApp := CreateOleObject('Excel.Application');
try
XLApp.Visible := False;
XLApp.Workbooks.Add(xlWBatWorkSheet);
Sheet := XLApp.Workbooks[1].WorkSheets[1];
Sheet.Name := 'ИРИ СВЧ '+FormatDateTime('DD_MM_YYYY_hh_mm', Now);





// for col := 0 to StringGrid.ColumnCount - 2 do
// for row := 0 to stringGrid.RowCount - 1 do
// Sheet.Cells[row + 2, col + 1] := stringGrid.Cells[col, row];


for col := 0 to StringGrid.ColumnCount - 1 do
for row := 0 to stringGrid.RowCount - 1 do
Sheet.Cells[row + 1, col + 1] := stringGrid.Cells[col, row];

Sheet.Cells[1, 1]:='Время рег.';
Sheet.Cells[1, 2]:='MMSI';
Sheet.Cells[1, 3]:='Название';
Sheet.Cells[1, 4]:='Курс';
Sheet.Cells[1, 5]:='Скорость';
Sheet.Cells[1, 6]:='Широта';
Sheet.Cells[1, 7]:='Долгота';
// Sheet.Cells[1, 8]:='К.угол';
// Sheet.Cells[1, 9]:='Широта';
// Sheet.Cells[1, 10]:='Долгота';

XLApp.Workbooks[1].WorkSheets[1].Columns[1].ColumnWidth := 13.71;
XLApp.Workbooks[1].WorkSheets[1].Columns[2].ColumnWidth := 12.57;
XLApp.Workbooks[1].WorkSheets[1].Columns[3].ColumnWidth := 23.43;
XLApp.Workbooks[1].WorkSheets[1].Columns[4].ColumnWidth := 8.43;
XLApp.Workbooks[1].WorkSheets[1].Columns[5].ColumnWidth := 10.43;
XLApp.Workbooks[1].WorkSheets[1].Columns[6].ColumnWidth := 10.71;
XLApp.Workbooks[1].WorkSheets[1].Columns[7].ColumnWidth := 10.71;
// XLApp.Workbooks[1].WorkSheets[1].Columns[8].ColumnWidth := 12.43;
// XLApp.Workbooks[1].WorkSheets[1].Columns[9].ColumnWidth := 11.29;
// XLApp.Workbooks[1].WorkSheets[1].Columns[10].ColumnWidth := 12.71;

for i := 1 to 10 do begin
Sheet.Cells[1, i].Font.Bold := True;
// XLApp.WorkBooks[1].WorkSheets[1].Rows[i].Font.Color := clBlack;
Sheet.Cells[1, i].Font.Size := 11;
Sheet.Cells[1, i].Font.Name := 'Times New Roman';
end;




try
XLApp.Workbooks[1].SaveAs(ExtractFilePath(ParamStr(0))+'..\..\Export\ais_'+
FormatDateTime('DD_MM_YYYY_hh_mm', Now)+'.xlsx');
Result := True;
except
// Error ?
end;
finally
if not VarIsEmpty(XLApp) then
begin
XLApp.DisplayAlerts := False;
XLApp.Quit;
XLAPP := Unassigned;
Sheet := Unassigned;
// WinExec(PANsiChar('TASKKILL /F /IM EXCEL.exe'), SW_HIDE);
end;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
if SaveAsExcelFile(stringGrid1, 'd:\MyExcelFile.xls') then
ShowMessage('Экспорт завершен');
end;
Delphi