Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перенос данных в ячейку листа Excel [D5, Win95/98]


Striker ©   (2001-12-13 07:59:00) 

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


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

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


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

//добавить в модули еще и этот
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;


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

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


perov   (2001-12-13 12:33:00) [4]

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


KIR   (2001-12-13 12:02:00) [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;


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

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


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

ExcelApplication.Disconnect;


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

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


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


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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо