Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Вниз

Перенос данных в ячейку листа Excel 


Striker   (2001-12-13 07:59) [0]

Подскажите пожалуйста как какую-нибудь переменную типа string или real записать в заданную ячейку листа EXCEL.(хотелось бы с примером).За ранее благодарен.



perov   (2001-12-13 08:21) [1]


ExcelApplication.Connect;
ExcelApplication.Workbooks.Add("", 0);
ExcelWorkbook.ConnectTo(ExcelApplication.ActiveWorkbook);
ExcelWorksheet.ConnectTo(ExcelWorkbook.Sheets[1] as _WorkSheet);
ExcelWorksheet.Activate;
ExcelWorksheet.Cells.Item[j,1].Value := j - i;
ExcelApplication.Visible[0] := True;



KIR   (2001-12-13 08:32) [2]

Сюда же в догонку вопрос, а как после этого этот XL грамотно закрыть? А то у меня один раз перенос (правда ИЗ Excel"я) работает, а если попытаться еще раз, то - Memory Allocation Error...



perov   (2001-12-13 08:44) [3]

ExcelApplication.Disconnect;



Striker   (2001-12-13 09:00) [4]

Большой Thank"s дома попробую.



KIR   (2001-12-13 12:02) [5]

>perov
Писал уже
и ExcelApplication.Disconnect,
и ExcelApplication.Quit,
и FreeAndNil(ExcelApplication)...
не помогает, вот кусок кода:

ExcelApplication1.Connect;
ExcelApplication1.WorkBooks.Add(n,0); //n - имя файла
ExcelWorkBook1.ConnectTo(ExcelApplication1.ActiveWorkBook);

{тело программы}

ExcelApplication.WorkBook1.Close;
ExcelApplication1.Disconnect;



perov   (2001-12-13 12:33) [6]

ExcelWorksheet.Disconnect;
ExcelWorkbook.Close;
ExcelApplication.Disconnect;



Олег Лаукарт   (2001-12-13 13:33) [7]

В Королевстве Делфи есть пару статей про работу с Excel



Ынс   (2001-12-13 14:32) [8]

//добавить в модули еще и этот
uses ComObj;
//...
var
xlApp : Variant;
DataArray : Variant;//двумерный массив тут будет
rv: real;
begin
rv:= 10.56568;
xlApp := CreateOleObject("Excel.Sheet"); //создать
xlApp.Application.Visible := True;

xlApp.Application.Cells[1, 2].Value := "23456346"; //можно так

xlApp.Application.Range["RealValue1"].Value:= rv; {можно и так : "RealValue1" - имя ячейки в "клетках"}

xlApp.Application.Range("A1:B8").Value := "Просто строка для заполнения диапазона"; {заполнение рейнджа одной строкой}


DataArray := VarArrayCreate([0,2,0,2], varVariant);{создадим массив типа вариант для хранения любых значений}
DataArray[0, 0]:= "элемент массива";
DataArray[1, 0]:= 38754;//тоже элемент массива

{присваиваем рейнджу весь массив по ссылке сразу... дешево,надежно и практЫчно =-) = особенно когда нужно в репорт передать массив размером этак тысяч 5 строк... если делать это через цикл for то репорт будет генериться убийственно долго}

xlApp.Application.Range("A1:C3):= DataArray;

//сохраним этот файл для потомков =-)
xlApp.SaveAs("c:\docs\reports\sample1.xls");

DataArray := Unassigned; //заметаем следы
xlApp := Unassigned; //грохнуть и это ...
end;



Striker   (2001-12-15 11:06) [9]

Я тут порылся и нашел сайт (WWW.afalinasoft.com).Там как раз по взаимодействие Delphi&Excel.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.023 c
1-22219           dimonf                2001-12-16 17:23  2002.01.08  
Как сделать, чтобы Canvas прорисовывался при любых монипуляцих с окном


1-22159           Phisio                2001-12-19 22:56  2002.01.08  
Как создавать новую структуру


4-22459           YUS                   2001-11-01 03:13  2002.01.08  
Мастера, помогите..


6-22286           ReY                   2001-10-08 18:07  2002.01.08  
Пиплы!!! Нужен ICQ!


3-21945           asafr                 2001-12-04 18:11  2002.01.08  
FastReport. frBand.Visible