Текущий архив: 2006.10.29;
Скачать: CL | DM;
Вниз
Экспорт из данных из DBGrid в Excel Найти похожие ветки
← →
tolianb © (2006-09-01 07:30) [0]Подскажите пожалуйста, есть ли возможность экспортировать данные из компонента DBGrid на форме в Excel - интересует механизм доступа к ячейкам с данными
← →
ANB © (2006-09-01 09:05) [1]В DBGrid нет данных, они лежать в дайтасете. Ветку надо перенести в "Начинающим".
ЗЫ. Впрочем есть гриды, которые умеют экспортить, но при этом все равно не себя, а набор данных, который они отображают. Заменяются только имена колонок на гридовые.
← →
NewLamer © (2006-09-01 12:29) [2]тебе надо просто данные из Грида в Excel перекинуть и все?
← →
NewLamer © (2006-09-01 12:51) [3]Если да то попробуй вот вот так
procedure TF_Otchet_MoveOS.OMOS_Btn_PrintClick(Sender: TObject);
//Процедура например нажатие кнопки
var vExcel: Variant;
Sheet: variant;
i: integer;
begin
vExcel:= CreateOleObject("Excel.Application");
vExcel.WorkBooks.Open("C:\"+"Мои проекты"+"\Test.xls",true);//Путь к файлу Excel и его имя
Sheet:= vExcel.WorkBooks.Item[1].Sheets[1];
for i:= 0 to DBGrid1.Count-1 do
Sheet.Range["B"+IntToStr(i+1),"B"+IntToStr(i+1)].value := DBGrid1.Nodes.Items[i].Values[Здесь укажешь номер нужного столбца];
Sheet.Range["C"+IntToStr(i+1),"C"+IntToStr(i+1)].value := DBGrid1.Nodes.Items[i].Values[Здесь укажешь номер нужного столбца];
//и так далее сколько столбцов нужно скопироватьв Excel
vExcel.Visible:= true;
end;
Sheet.Range["B"+IntToStr(i+1),"B"+IntToStr(i+1)].value - это номер ячейки в Excel
он должен существовать!!! т.е. он не создается сам по себе ты лишь запишешь в него данные
← →
ANB © (2006-09-01 13:19) [4]
> NewLamer © (01.09.06 12:51) [3]
И это у тебя компиляется ? Где это ты такой грид то раздобыл ?
← →
NewLamer © (2006-09-01 14:18) [5]Да. А это обычный грид. только в Uses еще надо добавить ComObj
← →
lexer © (2006-09-01 14:23) [6]>NewLamer © (01.09.06 14:18) [5]
и после этого у стандартного DBGrid появятся свойства Count и Nodes? :)
← →
NewLamer © (2006-09-01 14:44) [7]Извиняюсь у меня другой компонент стоит cxDBTreeList
← →
ANB © (2006-09-01 14:48) [8]
> cxDBTreeList
И каким боком он к обычному гриду ?
← →
NotGooDP © (2006-09-01 15:13) [9]>NewLamer
норм пример
>tolianb
http://www.kornjakov.ru/stat.htm
вот тебе статья по работе с суперфункциями Word и Exel там все понятно.
← →
NewLamer © (2006-09-01 15:21) [10]
Procedure FillReport(Sheet: variant);
var i: integer;
begin
With Form1 do
begin
for i:= 1 to Table1.RecordCount do
begin
Sheet.Range["B"+IntToStr(i),"B"+IntToStr(i)].value := DBGrid1.Columns[1].Field.Value;
Table1.Next;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var vExcel: Variant;
Sheet: variant;
begin
vExcel:= CreateOleObject("Excel.Application");
vExcel.WorkBooks.Open("C:\"+"Мои проекты"+"\Test.xls",true);
Sheet:= vExcel.WorkBooks.Item[1].Sheets[1];
FillReport(Sheet);
vExcel.Visible:= true;
end;
Вот пример с обычным гридом проверял работает
← →
Lexer © (2006-09-01 15:26) [11]>NewLamer © (01.09.06 15:21) [10]
RecordCount здесь лишний, данный код в некоторых случаях выведет множество одинаковых строк - повторяться будет последняя строка (сам подумай почему).
Использовать EOF, заполнять массив и кидать одним заходом его в Excel.
← →
YurikGL © (2006-09-01 20:52) [12]Несколько способов экспорта из БД в Excel
http://www.kladovka.net.ru/index.cgi?pid=board&rid=363
← →
isasa © (2006-09-02 12:08) [13]Странно все это. Преремешаем текущую позицию в одном компоненте, данные берем в другом.
for i:= 1 to Table1.RecordCount do
begin
Sheet.Range["B"+IntToStr(i),"B"+IntToStr(i)].value := DBGrid1.Columns[1].Field.Value;
Table1.Next;
end;
может надо быть проще? И без мультфильмов :)
Table1.DisableControls;
for i:= 1 to Table1.RecordCount do
begin
Sheet.Range["B"+IntToStr(i),"B"+IntToStr(i)].value := Table1.FieldByName(<тут имя поля, например>).Value;
Table1.Next;
end;
Table1.EnableControls;
← →
isasa © (2006-09-02 12:10) [14]Сорри, не проснулся.\\
Вот это
for i:= 1 to Table1.RecordCount do
считать этим
while not Table1.Eof do
← →
tolianb © (2006-09-04 02:54) [15]Всем спасибо, работает, а то голову ломал!
Страницы: 1 вся ветка
Текущий архив: 2006.10.29;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.038 c