Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];

Вниз

работа с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
8-45476
Makuha
2002-06-06 12:44
2002.10.14
Потоковое видео


8-45469
Still Swamp
2002-02-06 19:09
2002.10.14
GLScene - MoveTo


1-45270
Nicko
2002-10-04 12:05
2002.10.14
Директория проэкта


1-45262
shelest
2002-10-02 09:35
2002.10.14
Включение и Выключение монитора


7-45600
Mars
2002-08-05 21:36
2002.10.14
Посылка команд на принтер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский