Форум: "Базы";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
ВнизМожет быть глупый вопрос, но .... Найти похожие ветки
← →
Smile (2001-12-10 09:59) [0]возможно ли все записи находящиеся в базе переводить в Excel?
← →
Desdechado (2001-12-10 10:55) [1]в экселе делаешь "открыть файл", указываешь тип дбф - и вперед!
← →
Саня (2001-12-10 16:00) [2]Возможно коряво, но у меня работает. Надоть только чтоб по указанному пути находился заранее созданый файл екселя, с отформатированными столбиками и т.д.
Код из работающей проги... Если не понятно то ? на ctd_2000@hotmail.ru
procedure TfmGlav.Button4Click(Sender: TObject);
var vExcel: OLEVariant;
i, n: integer;
begin
i:=5; (записи будут всавляться с пятой строки в екселе)
n:=1;
DataSourse1.DataSet.DisableControls; (и для TTable и для TQuery)
DataSourse1.DataSet.First;
vExcel:=CreateOleObject("Excel.Application");
(здесь надо чтобы книга екселя находилась по указанному пути)
vExcel.Workbooks.Open("\\Sasha\c\Rabota\Table\Для отбора.xls", False);
while not DataSourse1.DataSet.eof do
begin
vExcel.Cells[1,1].Value:="Заголовок отчета"; (в первую строку пишем заголовок для переданных данных)
vExcel.Cells[i,1].Value:=""+inttostr(n)+""; (нумерация по первой колонке)
vExcel.Cells[i,2].Value:=DataSourse1.DataSet.fieldbyname("Name").asstring;
vExcel.Cells[i,3].Value:=DataSourse1.DataSet.fieldbyname("RegN").asstring;
vExcel.Cells[i,4].Value:=DataSourse1.DataSet.fieldbyname("City").asstring;
(и т.д. для всех нужных полей БД)
dsZak.DataSet.next;
inc(i);
inc(n);
end;
DataSourse1.DataSet.EnableControls;
vExcel.Visible := True;
end;
← →
БАА (2001-12-10 16:10) [3]2Desdechado:А таблицу являющуюся результатом выполнения скюэля таким же образом можно?
← →
Саня (2001-12-10 16:13) [4]Да..., для этого и поставлено
vExcel.Cells[i,2].Value:=DataSourse1.DataSet.fieldbyname("Name").asstring
а не
vExcel.Cells[i,2].Value:=Table1.fieldbyname("Name").asstring
или
vExcel.Cells[i,2].Value:=TQueri1.fieldbyname("Name").asstring
← →
Delirium (2001-12-10 16:15) [5]>Саня
Всё это хорошо, но работать будет крайне медленно, проще накопить таблицу в RichEdit, разделяя значения #9. А в Excel перенести через Clipboard, скорость возрастёт на два порядка.
← →
Саня (2001-12-10 16:24) [6]Попробую обязательно... :)
Да...Может не понял я чегойто...., а в автомате то это можно сделать (через буфер в смысле) - по нажатию одной кнопки юзером...
Они у меня не очень то шарят (на уровне вкл и выкл)
А так, действительно - если база большая да еще и по сетке, то подтормаживает. Но я им на это время формочку высвечиваю с картинками...
← →
Delirium (2001-12-10 16:37) [7]Я кинул пример, см. в других вопросах
← →
Desdechado (2001-12-10 19:56) [8]2 БАА
если из своей программы, то можно что угодно (сохранить в дбф, а потом открыть в экселе, или прямо перегнать туда, как предлагается выше)
← →
Yuri Btr (2001-12-11 09:33) [9]Вообще то можно сделать енто в обход Дельфей,
В Excele(Menu) --> Data --> Import external data --> New database Query
Составляешь запрос в Microsoft Query на SQL и рефрешишь его каждый раз после изменения данных в базе. (пункты меню взяты из англ. Office - аналогично для русского)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c