Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.14;
Скачать: CL | DM;

Вниз

Может быть глупый вопрос, но ....   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
4-42600
wHammer
2001-11-13 16:16
2002.01.14
Мастера, помогите в поиске решения!


1-42443
Пл.
2001-12-24 17:05
2002.01.14
Цикл


3-42394
Dim
2001-12-10 09:20
2002.01.14
Аналог в InterBase функции SUBSTRING MSSQL 6.5


6-42524
Victoz
2001-10-19 11:05
2002.01.14
Опять про WinPopup и Mailslot и немного про кодировки


4-42633
exchoper
2001-10-11 15:33
2002.01.14
STAY ON TOP