|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2012, 02:15 | #1 |
Форумчанин
Регистрация: 08.01.2011
Сообщений: 102
|
из БД ACCESS отчет в EXCEL
Здравствуйте товарищи программисты подскажите пожалуйста решение данной задачи
1) есть бд access (одна таблица) подключена через ado в delphi и данные отображаются в dbgrid1 2) задача такова нужно некоторые данные из таблицы после фильтрации перенести в эксель тоесть в шаблон (1.xls фаил в архиве 1.rar) и вставить в столбец наименование но вставить эти данные нужно не по ячейкам и не диапазоном так как я не знаю конечного количества строк в зависимости от результата фильтрации поэтому нужно вставлять данные при помощью цикла ( а я то как раз циклы не очень понимаю как их программировать) на подобии чего то такова # этот код тупо экспортирует все данные из дбгрид # var ExcelApp : variant; row :integer; col:integer; begin dbgrid1.DataSource.DataSet.First; ExcelApp:=CreateOLEObject('Excel.Ap plication'); // создает объект ExcelApp.WorkBooks.add; //новый док ExcelApp.visible:=true; // показывает док ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'ScorpioN'; // переименовывание ЛИСТА 1 for col :=0 to DBGrid1.Columns.Count-1 do ExcelApp.WorkBooks[1].WorkSheets[1].cells[6,col+2].value:=dbgrid1.fields[col].displaylabel; for row :=0 to DBGrid1.DataSource.DataSet.RecordCo unt-1 do begin for col :=0 to DBGrid1.Columns.Count-1 do begin ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,col+2].value:=dbgrid1.DataSource.DataSet. Fields[col].AsString;// измени цыфры иначе таблица начнется с шестой строки ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,1]:=row+1;// измени цыфры иначе таблица начнется с шестой строки end; DBGrid1.DataSource.DataSet.Next; end; # но он мне не подходит так как мне нужно не все данные из базы а определенные и не просто абы куда попало вставлять а в определенное место в столбец наименование. у меня есть ещё одни код но он работает со стрингридом и в ворд закавыривает # var word, doc, tab1: OleVariant; str, text: string; var i, j: integer; begin GetDir(0,str); word:=CreateOleObject('Word.Applica tion'); word.Documents.Open('C:\x.doc'); ///////// tab1:=doc.Tables.Item(1); if stringgrid1.RowCount>2 then for i := 3 to stringgrid1.RowCount do tab1.Rows.Add; for i := 1 to stringgrid1.RowCount - 1 do for j := 0 to stringgrid1.ColCount - 1 do tab1.Cell(i+1, j+1).Range.Text:=stringgrid1.Cells[j,i]; word.Visible:=true; # лично у меня проблема в том что я не как не до соображу как мне написать код который бы в зависимости от набора данных в бд в экселе в нужном месте сам добавлял строки. Прошу всех заинтересовавшихся помочь хотя бы советом или гиперссылкой на информацию а то куда ни сунься везде пишут как заполнять данные с помощью ячеек и диапазоном а вот при помощи цикла чё та не как. заранее спасибо .. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
отчет бухгалтерии ms access | xanderg | Фриланс | 6 | 22.02.2012 08:33 |
Импорт-экспорт данных Excel-Access, и из Access-Excel | Людвиг | Microsoft Office Access | 3 | 27.10.2011 14:38 |
Отчет в MS Access | DarkGrom | Помощь студентам | 3 | 21.04.2011 10:50 |
Отчет access | RS219 | Microsoft Office Access | 2 | 18.08.2010 09:10 |
Отчет в Access | Anutk@ | Помощь студентам | 1 | 03.03.2009 14:30 |