Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Создание файла excel с помощью delphi


Автор: Savior 8.12.2009, 20:48
Здравствуйте. Нужно программно создать excel-файл в delphi. Все примеры, которые здесь есть, открывают уже готовый файл типа
  ex:=createoleobject('excel.application');
  ex.visible:=false;
  Ex.DisplayAlerts:=False;
  ex.Workbooks.open(OpenDialog1.FileName);
и т.д
А мне нужно именно создать excel-файл, указать путь, форматирование и т.д.
Помогите или направьте ссылкой

Автор: Демо 8.12.2009, 21:30
Код

var
  Excel: OleVariant;
begin
    Excel := CreateOleObject('Excel.Application');
    Excel.Visible := True;
    Excel.WorkBooks.Add;
    Excel.Save('c:\temp.xls');
    Excel.Quit;


Автор: Данкинг 8.12.2009, 22:42
Демо, Excel:=unassigned; перед выходом забыл. smile 

Автор: Savior 8.12.2009, 22:58
Всё работает, спасибо. Только Excel:=unassigned после Excel.Quit;

Автор: Данкинг 8.12.2009, 23:11
Цитата(Savior @  8.12.2009,  22:58 Найти цитируемый пост)
Только Excel:=unassigned после Excel.Quit; 

Ну да, разумеется, после, а не перед. smile 

Автор: Nymph666 20.9.2011, 13:11
Доброго времени суток.
Ребят, мне необходимо также создать файл Excel, а затем его открыть и записать туда информацию из StringGrid.
В уже существующие файлы писать получается, но когда создаю(как раз также как тут написано) и пытаюсь открыть этот файл Excel выдает ошибку "Не удается открыть файл, так как формат или расширение этого файла являются недопустимыми. Убедитесь, что файл не поврежден и расширение его имени соответствует формату"
Код

Save_file:=CreateOleObject(ExcelApp);
Save_file.Visible:=False;
Save_file.Workbooks.Add;
name_file := 'Journal'+Main.CB_Subject.Text+Main.Month_CB.Text+'.xls';
Save_file.Save(ExtractFilePath(Application.ExeName)+name_file);
VFN_s := ExtractFilePath(Application.ExeName)+name_file;
Save_file.Workbooks.Open(VFN_s,ReadOnly:=false);
Save_file.Application.EnableEvents:=false;
workbook_s:=Save_file.workbooks.Open(VFN_s,ReadOnly:=false);
sheet_s:= workbook_s.ActiveSheet;


С чем это может быть связано? 

Автор: Данкинг 20.9.2011, 13:31
Во-первых, создай новую тему. Во-вторых, смотри, что у тебя в VFN_s.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)