- Сообщений: 1054
- Репутация: 1
- Спасибо получено: 2
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
// Глобальные переменные
var
// Имя файла отчета
fFN : string = 'Не задан';
// Номер строки в отчете
fLN : integer;
// Ручное построение отчета
procedure Page1OnManualBuild(Sender: TfrxComponent);
var
// Объект диалога выбора файла
fOD : TOpenDialog;
// Объект приложения MS Excel
fExelApp : Variant;
// Объекты элементов приложения MS Excel: книга и лист
fVB, fVS :Variant;
begin
// Создаем диалог для запроса имени файла MS Excel
fOD := TOpenDialog.Create(nil);
try
// Задем фильтр для выбора файлов
fOD.Filter := 'Файлы MS Excel(*.xls)|*.xls|Все файлы(*.*)|*.*';
if not fOD.Execute then begin
ShowMessage('Файл не выбран');
Engine.StopReport;
end;
// Имя файла получено
fFN := fOD.FileName;
finally
fOD.Free();
end;
// Показываем заголовок отчета
ReportTitle1.Visible := True;
Engine.ShowBand(ReportTitle1);
// Показываем шапку данных
Engine.ShowBand(Header1);
// Получаем доступ к MS Excel
fExelApp := '';
fExelApp := CreateOleObject('Excel.Application');
if VarToStr(fExelApp) = '' then begin
// Подключиться к MS Excel не получилось
ShowMessage('Ошибка при подключении к MS Excel.');
Engine.StopReport;
end else begin
// Открываем выбранный файл в MS Excel
fVB := fExelApp.WorkBooks.Open(fFN);
// Выбираем активный лист
fVS := fVB.ActiveSheet;
// В цикле считываем три строки
for fLN := 1 to 3 do begin
// Первая ячейка
memA.Text := fVS.Cells.Item[1, fLN].Text;
// Вторая ячейка
memB.Text := fVS.Cells.Item[2, fLN].Text;
// Третья
memC.Text := fVS.Cells.Item[3, fLN].Text;
// Отображение очередной строки в отчете
Engine.ShowBand(MasterData1);
end;
// Завершение работы с MS Excel
fExelApp.Quit;
end;
fExelApp := '';
end;
begin
end.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
А можно пример скрипта, в котором в цикле выполняется не СЧИТЫВАНИЕ определенных ячеек Excel а ВНЕДРЕНИЕ в определенные ячейки?2. При выполнении скрипта, у пользователя запрашивается имя файла MS Excel. Затем выполняется подключение к MS Excel, передача последнему имени файла и в цикле считывание первых трех строк с листа MS Excel.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
fVS.Cells.Item[1, 1].Value := 'Первое значение';
fVS.Cells.Item[1, 2].Value := 'Второе значение';
fVS.Cells.Item[1, 3].Value := 'Третье значение';
fExelApp.Quit;
fVB.Save();
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Вопрос непонятен....
а каким кодом открыть документ exсel сразу после сохранения?
...
...
и запустить существующий в нем макрос?
fExelApp.Run('MyMacro');
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
fExelApp.Quit;
fExelApp.Visible := True;
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.