
10.01.2010, 04:17
|
Прохожий
|
|
Регистрация: 03.03.2008
Сообщения: 3
Репутация: 10
|
|
не конкретно к этой задачи но понять что куда мона
Код:
procedure CreateFileExcel(kolFiles:integer); //----Создание Excel файла отчета -------
var stolb : byte;
x, y, i: integer;
XL: Variant;
f:TextFile;
begin
XL := CreateOleObject('Excel.Application'); // Создание OLE объекта
XL.DisplayAlerts := False;//не показывать предупреждающие сообщения
XL.WindowState := -4137;//Открывать Excel на полный экран
if not(FileExists(stDir+'\RPO_'+copy(DateToStr(date),4,7)+'.xls')) then //Если нету файла отчета за текуший месяц создаем его
begin
XL.WorkBooks.add; // Создание новой рабочей книги
XL.WorkBooks[1].WorkSheets[1].Cells[1,2].Value:='OPS'; // Вторая колонка Шапка 'OPS'
XL.Range['A1:AG'+IntToStr(StrToInt(baza[0,0])+1)].Select; //Выделение всех рабочих ячеек
XL.Selection.Borders.LineStyle:=1; // Устанавливаем стиль борьера ячеек выделенных
XL.Selection.VerticalAlignment:=3; // Вертикальное выравнивание поЦентру
XL.Selection.HorizontalAlignment:=3; // Горизонтальное выравнивание поЦентру
XL.Selection.ColumnWidth:=12; // ширина выделенных столбцов 12
XL.Range['C2:AG'+IntToStr(StrToInt(baza[0,0])+1)].Select;
XL.Selection.Borders.LineStyle:=2;
XL.Range['A1:A1'].Select;
for i:=1 to StrToInt(baza[0,0]) do // заполняем 1-й и 2-й столбец
begin
XL.WorkBooks[1].WorkSheets[1].Cells[i+1,1].Value:=IntToStr(i);
XL.WorkBooks[1].WorkSheets[1].Cells[i+1,2].Value:=baza[i,0];
end;
for i:=1 to 31 do // Заполняем Шапку датами за текуший месяц с 1 по 31
XL.WorkBooks[1].WorkSheets[1].Cells[1,i+2].Value:=IntToStr(i)+copy(DateToStr(date),3,8);
end
else//Иначе Если файл есть то редоктируем его
begin
if FileExists(stDir+'\RPO_'+copy(DateToStr(date),4,7)+'.xls') then
begin
XL.ActiveWorkbook.Close;
XL.Application.Quit;
end;
XL.WorkBooks.Open(stDir+'\RPO_'+copy(DateToStr(date),4,7)+'.xls'); //Открываем рабочую книгу
XL.WorkSheets[1].Activate; //Становимся на первый лист
end;
frmMain.Pg.Position:=0;
frmMain.Pg.Max:=kolFiles;
for x:=1 to kolFiles do
begin
frmMain.PRG.Caption:=Files[x].Index;
for y:=1 to StrToInt(baza[0,0]) do
if Files[x].Index=baza[y,0] then
begin
XL.WorkBooks[1].WorkSheets[1].Cells[y+1,StrToInt(copy(Files[x].Date,3,2))+2].Value:=Files[x].Name;
end;
FileCopy(stDir+'\UnZip\'+Files[x].Name,stDir+'\'+DateToStr(Date)+'\'+Files[x].Name);
DeleteFile(stDir+'\UnZip\'+Files[x].Name);
frmMain.PG.Position:=frmMain.PG.Position+1;
end;
frmMain.PG.Position:=0;
frmMain.PRG.Caption:='Creating Excel Reports Complite!!!';
XL.WorkBooks[1].WorkSheets[1].Cells[1,1].Value:=TimeToStr(Time);
XL.ActiveWorkbook.SaveAs(stDir+'\RPO_'+copy(DateToStr(date),4,7)+'.xls');
XL.ActiveWorkbook.Close;
XL.Application.Quit;
end;
|