Текущий архив: 2002.10.14;
Скачать: CL | DM;
Вниз
работа с Excel документом Найти похожие ветки
← →
volph777 (2002-10-04 12:45) [0]Какой комонент нужен, если мне нада занести в некоторые ячейки Ексель-документа данные, а потом его сразу же распечатать не открывая самого екселя.
← →
Termik (2002-10-04 12:47) [1]Делай CreateOleObject
← →
AFrolov (2002-10-04 12:55) [2]TExcelApplication подробнее на http://www.afalinasoft.com/rus/tips/index.html и в справке по VBA
← →
andrey_pst (2002-10-04 13:10) [3]>>не открывая самого екселя
Excel все равно запускать надо, только отображать не нужно.
Используй interface или dispinterface или olevariant CreateOleObject).
Если скорость критична учти, что olevariant - самый медленный способ из этих трех.
Почитай книжки по COM-ориентированным технологиям, т.к. тема слишком обширная.
Поищи на форумах по слову Excel - кучу ссылок найдешь.
← →
volph777 (2002-10-04 13:10) [4]Нет, мне нада не запуская Excel или что бы его хотя бы не было видно, записть в ячейку данные и на печатать сразу же на принтер
← →
volph777 (2002-10-04 13:11) [5]А можно простой пример привести, занести в одну ячейку число и тут же распечатать не показывая екселя на принтер
← →
andrey_pst (2002-10-04 13:35) [6]Примерно так:
unit Unit1;
interface
uses ..., Excel97;
type
TF_Main = class(TForm)
...
private
{ Private declarations }
IExcelApp : Excel97._Application; // интерфейс сервера
IExcelWB : Excel97._Workbook; // интерфейс книги
IExcelWS : Excel97._Worksheet; // интерфейс листа
DIExcelR : Excel97.Range; // диспинтерфейс области
DIExcelC : Excel97.Comment; // диспинтерфейс комментария
...
implementation
procedure TF_Main.Btn_SendClick(Sender: TObject);
const
xlLCID = LOCALE_USER_DEFAULT;
begin
IExcelApp := CoExcelApplication.Create; // загрузили сервер
// IExcelApp.Visible[xlLCID] := true; // отобразили сервер
IExcelWB := IExcelApp.Workbooks.Open(GetCurrentDir + "\AccInv.xlt", EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, false, xlLCID);
IExcelWB.Activate(xlLCID); // активировали книгу
IExcelWS := IExcelWB.Worksheets.Item["Лист1"] as Excel97._Worksheet; // получили ссылку на лист
IExcelWS.Activate(xlLCID); // активировали лист
DIExcelR:= IExcelWS.Range["A2", "A2"] as Excel97.Range; // получили ссылку на область
DIExcelR.Activate; // активировали область
DIExcelR.Value := "Счет-фактура № " + IntToStr(NumberAccInv) + " от " + DateToStr(DateAccInv); // записали заголовок
DIExcelR := nil; // освободили область
IExcelWS.Name := "Счет-фактура № " + IntToStr(NumberAccInv); // переименовали лист
IExcelWS := nil; // освободили лист
IExcelWB.PrintOut(EmptyParam, EmptyParam, 1, false, EmptyParam, false, EmptyParam, xlLCID); // распечатали содержимое
IExcelWB.SaveAs(Directories + "AccountInvoice_" + IntToStr(NumberAccInv) + ".xls", EmptyParam, EmptyParam, EmptyParam, false, false, xlNoChange, EmptyParam, false, EmptyParam, EmptyParam, xlLCID); // сохранили книгу
IExcelWB.Close(true, Directories + "AccountInvoice_" + IntToStr(NumberAccInv) + ".xls", false, xlLCID); // закрыли книгу
IExcelWB := nil; // освободили книгу
IExcelApp.Visible[xlLCID] := false; // скрыли сервер
IExcelApp.Quit; // закрыли сервер
IExcelApp := nil; // освободили сервер
end;
← →
Hawk2 (2002-10-04 13:53) [7]TO andrey_pst: Да конечно примерчик очень простой :-)
TO volph777: Попробуй так:
uses
...OleServer, Excel97;
...
var
Form1: TForm1;
Excel:TExcelApplication;
IWorkbook:Excel97.ExcelWorkbook;
ISheet:Excel97.ExcelWorkSheet;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
begin
if not Assigned (Excel) then
Excel:= TExcelApplication.Create(Self);
Excel.ConnectKind := ckNewInstance;
IWorkbook:=Excel.Workbooks.Add("D:\Tamplete01.xls",0);
ISheet:=IWorkbook.WorkSheets.Item[1] as Excel97.ExcelWorksheet;
Excel.Cells.Item[2,1].Value:="Для печати.";
{Excel.Visible[0]:=true;} //Эта строка показывает Excel
Excel.PrintOut;
Excel.Quit;
FreeAndNil(Excel);
end;
может че забыл подправте.
Страницы: 1 вся ветка
Текущий архив: 2002.10.14;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.007 c