Работа с EXCEL
Работа с EXCEL
Работа с EXCEL Приёмы оформления документа (отчёта) В uses добавить comobj var form1: tform1; xl : variant; // Переменная в которой создаётся обьект excel Создание документа // Обьект excel xl := createoleobject('excel.application'); // Чтоб не задавал вопрос о сохранении документа xl.displayalerts := false; // новый документ xl.workbooks.add; // или загружаем его xl.workbooks.open(mydir + '\akt.xls'); { mydir - глобальная переменная типа string в неё помещаем путь к каталогу запуска нашей програмы по событию formcreate procedure tform1.formcreate(sender: tobject); begin getdir(0,mydir); end; я всегда так делаю, чтобы программу можно было в любой каталог поместить вместе со своими дополнительными файлами, в этом случае путь будет выбираться всегда правильно } // Делаем его видимым xl.visible := true; // Когда прога уже оттестирована лучше это делать в конце, быстрей работает, // а пока нет лучше в начале // Левое и правое поля отступа для печати xl.workbooks[1].worksheets[1].pagesetup.leftmargin := 30; xl.workbooks[1].worksheets[1].pagesetup.rightmargin := 10; // Даём название страничке xl.workbooks[1].worksheets[1].name := 'Прайс лист'; // Строка появляется на каждом листе при печати xl.workbooks[1].worksheets[1].pagesetup.printtitlerows := '$3:$3'; xl.workbooks[1].worksheets[1].pagesetup.printtitlecolumns := '$a:$a'; // формат числа 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; Автор: Константин, konrads@mail.ru, Новосибирск