|
Создание новой книги
Используя раннее связывание
var
IWorkbook: Excel8_TLB._Workbook;
...
IWorkbook := IExcel.Workbooks.Add(EmptyParam, xlLCID);
Передача в качестве первого параметра EmptyParam означает, что будет создана новая книга с
количеством пустых листов, выставленным по умолчанию. Если в первом параметре вы передадите имя
файла (с полным путем, иначе поиск осуществляется в каталоге по умолчанию), этот файл будет
использован как шаблон для новой книги. Вы можете также передать одну из следующих констант:
xlWBATChart, xlWBATExcel4IntlMacroSheet, xlWBATExcel4MacroSheet,
или xlWBATWorksheet. В результате будет создана новая книга с единственным листом
указанного типа.
Внимание - важно!
Excel не может держать открытыми несколько книг с одинаковыми названиями,
даже если они лежат в разных каталогах, поэтому при создании файла по шаблону добавляет к имени
файла новой книги номер (шаблон "test.xls" - новый файл "test1.xls").
Используя позднее связывание
При позднем связывании не нужно указывать дополнительные параметры или LCID, можно
просто написать вот так:
var
Workbook: OLEVariant;
...
Workbook := Excel.WorkBooks.Add;
или
Workbook := Excel.WorkBooks.Add('c:\template.xls');
Если вы не используете библиотеку типов, но хотите использовать какую-то из констант,
упомянутых выше, вы можете определить их в вашем коде:
const
xlWBATChart = $FFFFEFF3;
xlWBATExcel4IntlMacroSheet = $00000004;
xlWBATExcel4MacroSheet = $00000003;
xlWBATWorksheet = $FFFFEFB9;
Закрытие книги
Используя раннее связывание
var
SaveChanges: boolean;
...
SaveChanges := True;
IWorkbook.Close(SaveChanges, EmptyParam, EmptyParam, xlLCID);
Если в качестве параметра SaveChanges вы передадите EmptyParam, Excel
задаст вопрос, сохранять ли рабочую книгу. Второй параметр позволяет вам
определить имя файла, а третий указывает, нужно ли отправлять книгу
следующему получателю.
Используя позднее связывание
При позднем связывании нет необходимости указывать дополнительные параметры,
поэтому вы можете просто написать:
Workbook.Close(SaveChanges := True);
или
Workbook.Close;
|