Тема: Excel
Показать сообщение отдельно
Старый 12.05.2008, 20:58   #4 (permalink)
Призрак
Member
 
Регистрация: 26.03.2007
Сообщений: 89
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 17
По умолчанию

то что я использую для работы с экселем под седьмыми делфями:



//вырезано

uses
... ComCtrls, ExtCtrls, OleServer, ComObj;

//вырезано

const
lcid = LOCALE_USER_DEFAULT;

//вырезано

var
XL :Variant;


//вырезано

XL:= CreateOleObject('Excel.Application');

//создаем новую книгу

XL.WorkBooks.Add;

//открываем книгу

XL.Workbooks.Open('c:\test.xls', // Filename: WideString;
2, // UpdateLinks: OleVariant; 2 - never update
False, // ReadOnly: OleVariant;
EmptyParam, // Format: OleVariant;
EmptyParam, // Password: OleVariant;
EmptyParam, // WriteResPassword: OleVariant;
EmptyParam, // IgnoreReadOnlyRecommended: OleVariant;
EmptyParam, // Origin: OleVariant;
EmptyParam, // Delimiter: OleVariant;
EmptyParam, // Editable: OleVariant;
EmptyParam, // Notify: OleVariant;
EmptyParam, // Converter: OleVariant;
False, // AddToMru: OleVariant;
lcid);

//копируем из второй книги первую страницу в первую книгу, вставляя ее первой страницей

XL.WorkBooks[2].WorkSheets[1].Copy(XL.Workbooks[1].Sheets[1], EmptyParam);

//удаляем в первой книге вторую страницу

XL.WorkBooks[1].WorkSheets[2].Delete;

//закрываем вторую книгу

XL.WorkBooks[2].Close(0);

//записываем в ячейку текст. можно цифры. конвертируется само.

XL.WorkBooks[1].WorkSheets[1].Cells[2,1]:='Это тест';

//сохраняем документ (если уже существует, то эксель будет ругаться. если найдешь как запретить спрашивать про перезапись - скажи)

XL.WorkBooks[1].SaveAs('C:\test2.xls',
56, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, lcid);

//показать сформированный документ

XL.Visible:= true;

//отключаемся от офиса

XL:= UnAssigned;
Призрак вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070