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

Вниз

Уважаемые мастера, а можно ли....   Найти похожие ветки 

 
Саня   (2001-12-06 13:54) [0]

Очень охота из таблицы (paradox) какие-то столбцы перекачать
в Word (Excel) и чтоб там тоже был вид таблицы. Очень нуна :(


 
Cheburek   (2001-12-06 14:25) [1]

хм... сохрани парадоксовскую табличку в формате DBASE и открывай в Excel"е на здоровье


 
Саня   (2001-12-10 16:16) [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;



 
Delirium   (2001-12-10 16:34) [3]

А теперь попробуй вот так :)

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
M,S:String;
AppExcel: Variant;
begin
Table1.First;
M:="";
while not Table1.Eof do
begin
S:="";
for i:=0 to Table1.FieldCount-1 do
S:=S+Table1.Fields[i].AsString+#9;
Delete(S,Length(S),1);
M:=M+S+#13;
Table1.Next;
end;
RichEdit1.Lines.Text:=M;
RichEdit1.SelectAll;
RichEdit1.CopyToClipboard;
AppExcel := CreateOleObject("Excel.Application");
AppExcel.WorkBooks.Add;
AppExcel.ActiveSheet.Paste;
AppExcel.Visible := true;
AppExcel:=UnAssigned;
end;

Оцени производительность


 
Delirium   (2001-12-10 16:35) [4]



 
well   (2001-12-10 16:38) [5]

Посмотри статью на этом сайте, там в принципе все есть, с примерами но для CBuilder
http://src.fitkursk.ru/articles/art0000028.asp


 
Саня   (2001-12-10 16:45) [6]

То Delirium ...
Быстро..., однако :)
Но вставка прошла какая то корявая.. :(
Не по столбцамм и не все строки... Вообщето сам докумекаю...
Сэнкс!!


 
Саня   (2001-12-10 16:49) [7]

> Well
Ок!


 
Delirium   (2001-12-10 19:06) [8]

> Саня
После Paste вставь этот кусочек, и с шириной колонок будет всё в порядке.

for i:=0 to Table1.FieldCount-1 do
AppExcel.ActiveSheet.Columns[i+1].ColumnWidth:=
Table1.Fields[i].DisplayWidth;


 
Саня   (2001-12-11 12:52) [9]

for Delirium
Это опять я :)
Подскажи пжалуста...
Почемуйто с твоим кодом вставляет только одну строку (1-ю)
Поворочал мозгами.... безрезультатно :(
Наверное крыша совсем задымилась - надо в отпуск...


 
Delirium   (2001-12-11 13:01) [10]

>Саня
Я привел рабочий код, без искажений - смотри у себя.



Страницы: 1 вся ветка

Текущий архив: 2002.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
4-42621
XM-AD
2001-11-14 10:37
2002.01.14
Как можно узнать директорию в которую пытаются сохранить файл?


1-42409
Елена
2001-12-24 00:40
2002.01.14
Help!


3-42367
Nest
2001-11-29 12:32
2002.01.14
Можно ли работать с временной таблицей (напр. #tmp_tab_name ) через Ttable?


1-42467
Чайничек
2001-12-24 19:55
2002.01.14
Можно ли, пограммируя на Delphi работать с rtf, и doc файлами?


1-42507
Dim!S
2001-12-26 07:32
2002.01.14
Подключение htmlhelp