Excel.Visible := True;
Excel.Visible := False;
Печать содержимого активного листа Excel:
Excel.ActiveSheet.PrintOut;
Левое и правое поля отступа для печати
Excel.WorkBooks[1].WorkSheets[1].PageSetup.LeftMargin:=30;
Excel.WorkBooks[1].WorkSheets[1].PageSetup.RightMargin:=10;
Даём название страничке
Excel.WorkBooks[1].WorkSheets[1].Name:='Прайс лист';
Строка появляется на каждом листе при печати
Excel.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleRows:='$3:$3';
Excel.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleColumns:='$A:$A';
Чтение/запись данных в EXCEL
Доступ к ячейке в текущей книге Excel можно осуществить следующим образом:
Excel.Range['b2']:='Привет!'; // запись значения в ячейку
s:=Excel.Range['b2']; // чтение значения из ячейки
где b2 - адрес ячейки.
Или используя стиль ссылок R1C1:
Excel.Range[excel.Cells[2, 2]]:='Привет!';
где [2, 2] - координата ячейки.
Вообще, ячейке Excel можно присваивать любое значение
(символьное, целое, дробное, дата) при этом Excel
установит форматирование в ячейке применяемое по умолчанию.
Формат ячеек в EXCEL
Выделить (выбрать) группу ячеек для последующей работы можно так:
Excel.Range[Excel.Cells[1, 1], Excel.Cells[5, 3]].Select;
// либо
Excel.Range['A1:C5'].Select;
при этом будет выделена область находящаяся между ячейкой A1 и C5.
После выполнения выделения можно установить:
1) Объединение ячеек:
Excel.Selection.MergeCells:=True;
2) Перенос по словам:
Excel.Selection.WrapText:=True;
3) Горизонтальное выравнивание:
Excel.Selection.HorizontalAlignment:=3;
при присваивании значения 1 используется выравнивание по умолчанию,
при 2 - выравнивание слева, 3 - по центру, 4 - справа.
4) Вериткальное выравнивание
Excel.Selection.VerticalAlignment:=1;
присваиваемые значения аналогичны горизонтальному выравниванию.
5) Граница для ячеек:
Excel.Selection.Borders.LineStyle:=1;
При значении 1 границы ячеек рисуются тонкими сплошными линиями.
Кроме этого можно указать значения для свойства Borders, например, равное 3.
Тогда установится только верхняя граница для блока выделения:
Excel.Selection.Borders[3].LineStyle:=1;
Значение свойства Borders задает различную комбинацию граней ячеек.
В обоих случаях можно использовать значения в диапазоне от 1 до 10.
for i := 4 to 13 do
XL.WorkBooks[1].WorkSheets[1].Columns[i].NumberFormat:='0,00';
XL.WorkBooks[1].WorkSheets[1].Columns[4].NumberFormat:='0';
// Таким способом можно задавать ширину колонки
XL.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth:=4.5;
XL.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth:=50;
for i := 3 to 13 do
XL.WorkBooks[1].WorkSheets[1].Columns[i].ColumnWidth := 8;
// Шрифт жирный
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Bold:=True;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color:=clBlack;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Size:=16;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name:='Times New Roman';
XL.WorkBooks[1].WorkSheets[1].Cells[1,4]:='Прайс лист';
// Выравнивам по центру по вертикали
XL.WorkBooks[1].WorkSheets[1].Rows[1].VerticalAlignment:=2;
// Выравнивам по центру по горизонтали
XL.WorkBooks[1].WorkSheets[1].Rows[1].HorizontalAlignment:=3;
// Обьединяем ячейки
XL.WorkBooks[1].WorkSheets[1].Range['A1:D1'].Merge;
// Выравнивам по центру по вертикали
XL.WorkBooks[1].WorkSheets[1].Rows[3].VerticalAlignment:=2;
// Выравнивам по центру по горизонтали
XL.WorkBooks[1].WorkSheets[1].Rows[3].HorizontalAlignment:=3;
// Выравнивам по левому краю
XL.WorkBooks[1].WorkSheets[1].Cells[3,2].HorizontalAlignment:=2;
XL.WorkBooks[1].WorkSheets[1].Cells[3,3].HorizontalAlignment:=2;
// Выравнивам по правому краю
XL.WorkBooks[1].WorkSheets[1].Cells[3,4].HorizontalAlignment:=4;
XL.WorkBooks[1].WorkSheets[1].Rows[3].Font.Color:=clBlack;
XL.WorkBooks[1].WorkSheets[1].Rows[3].Font.Name:='Times New Roman';
XL.WorkBooks[1].WorkSheets[1].Rows[3].Font.Size:=12;
XL.WorkBooks[1].WorkSheets[1].Rows[3].Font.Bold:=True;
XL.WorkBooks[1].WorkSheets[1].Cells[3,1]:='№';
XL.WorkBooks[1].WorkSheets[1].Cells[3,2]:='Наименование продукции';
XL.WorkBooks[1].WorkSheets[1].Cells[3,3]:='Ед. изм.';
// обрисовка диапазона ячеек только снизу
// Borders[1] .... [4] - это края ячейки ColorIndex -4142 - пустой цвет i и n - переменные
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders.LineStyle:=1;
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders.Weight:=2;
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders[4].ColorIndex := 1;
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders[1].ColorIndex := -4142;
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders[2].ColorIndex := -4142;
XL.WorkBooks[1].WorkSheets[1].Range['A'+IntToStr(i)+':'+chr(ord('C')+n)+IntToStr(i)].Borders[3].ColorIndex := -4142;
// обрисовка диапазона ячеек
XL.WorkBooks[1].WorkSheets[1].Range['A3:'+chr(ord('C')+n)+IntToStr(i)].Borders.LineStyle:=1;
XL.WorkBooks[1].WorkSheets[1].Range['A3:'+chr(ord('C')+n)+IntToStr(i)].Borders.Weight:=2;
XL.WorkBooks[1].WorkSheets[1].Range['A3:'+chr(ord('C')+n)+IntToStr(i)].Borders.ColorIndex:=1;
// присвоение ячейке значения
XL.WorkBooks[1].WorkSheets[1].Cells[i,j]:='К-во';
// Поворачивать слова, писать вертикально, под углом и т.д.
XL.WorkBooks[1].WorkSheets[1].Rows[2].Orientation:=90;
XL.WorkBooks[1].WorkSheets[1].Range['A2:B2'].Orientation:=0;
Использование паролей в EXCEL
Установка пароля для активной книги может быть произведена следующим образом:
try
// попытка установить пароль
Excel.ActiveWorkbook.protect('pass');
except
// действия при неудачной попытке установить пароль
end;
где pass - устанавливаемый пароль на книгу.
Снятие пароля с книги аналогично, использовуем команду
Excel.ActiveWorkbook.Unprotect('pass');
где pass - пароль, установленный для защиты книги.
Установка и снятие пароля для активного листа книги Excel производится командами
Excel.ActiveSheet.protect('pass'); // установка пароля
Excel.ActiveSheet.Unprotect('pass'); // снятие пароля
где pass - пароль, установленный для защиты книги.
Вспомогательные операции в EXCEL
Удаление строк со сдвигом вверх (при выполнении данных действий
будут удалены строки с 5 по 15):
Excel.Rows['5:15'].Select;
Excel.Selection.Delete;
Установка закрепления области на активном листе Excel:
// снимаем закрепление области, если оно было задано
Excel.ActiveWindow.FreezePanes:=False;
// выделяем нужную ячейку, в данном случае D3
Excel.Range['D3'].Select;
// устанавливаем закрепление области
Excel.ActiveWindow.FreezePanes:=True;