Показать сообщение отдельно
  #1  
Старый 13.09.2013, 10:06
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию

Код:
const
 
EXCEL_FILE_EXT = '.xls';
 
 
function TForm7.GetExcelFileName: String;
 
begin
Result := ExtractFilePath(Application.ExeName) + Edit1.Text;
if LowerCase(ExtractFileExt(Result)) <> EXCEL_FILE_EXT then
Result := Result + EXCEL_FILE_EXT;
end;
 
procedure TForm7.Button1Click(Sender: TObject);
var
ExcelApp, Sheet: variant;
Col, Row: Word;
begin
ExcelApp := CreateOleObject('Excel.Application');
 
try
ExcelApp.Visible := false;
ExcelApp.Workbooks.Add;
Sheet := ExcelApp.ActiveWorkbook.Worksheets[1];
for Col := 0 to StringGrid1.ColCount - 1 do
for Row := 0 to StringGrid1.RowCount - 1 do
Sheet.Cells[Row + 1, Col + 1] := StringGrid1.Cells[Col, Row];
ExcelApp.ActiveWorkbook.SaveAs(GetExcelFileName);
ShowMessage('Запись завершена!');
finally
ExcelApp.Application.Quit;
ExcelApp := unassigned;
 
end;
 
end;
Админ: Пользуемся тегами для оформления кода!

Вот кусок кода который создает файл Экселя(имя файла вводится в Эдит)
Как сделать так чтобы при следующем расчете программы(в предыдущих модулях) новые расчеты попадали уже в созданный файл(добавление в файл новых результатов расчета) а старые данные не исчезали(не перезаписывались) т.е сделать накопление данных в файле???
Помогите пожалуйста!

Проверять, существует ли файл, в зависимости от этого открывать его, или создавать новый. Если открывать, то в цикле пробегаться по таблице, искать первую пустую строку, и начиная с неё, в цикле вставлять данные.
Ответить с цитированием