| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Отчет в Excel |
| Автор: Demo 10.10.2006, 13:29 | ||
| Здравствуйте, уважаемые программисты! У меня возникла необходимость данные из DBGrid (которые формируются при помощи запроса) передать в Excel. Пишу следующий код, Excel загружается, имя листу присваивается, но почему-то в ячейки вместо данных из Грида вставляются данные, которые были копированы ранее (притом неважно где, в Ворде, блокноте и т.д.). Помогите, пожалуйста разобраться! Подскажите, где у меня ошибка?
Заранее спасибо! |
| Автор: Genyaa 10.10.2006, 14:20 |
| DBGrid1.DataSource.DataSet.Next; ExcelApplication.WorkBooks[1].WorkSheets['Отчет'].Paste; Я не знаток DBGrid, но по сути в Excel метод Paste вставляет данные из ClipBoard (скопированные ранее по Copy или <Ctrl+C>). Что собственно и происходит, как Вы говорите. По логике вещей, нужно либо сначала скопировать нужные данные из DBGrid в ClipBoard (чего как раз я и не наблюдаю в Вашем коде) и потом использовать Paste, либо использовать другие методы переноса данных (непосредственное присвоение значений ячейкам, например). |
| Автор: Demo 11.10.2006, 08:44 |
| Данных в DBGride слишком много, поэтому присваивать значения ячейкам нецелесообразно. А как можно скопировать данные из Грида? Но нужны не все поля из DBGrida, а выборочные! Помогите, пожалуйста!!! |
| Автор: Demo 11.10.2006, 09:19 | ||
Итак, данные из DBGrida я скопировала. Добавила следующий код:
Здесь я данные отправляю сначала в Memo, а затем в Excel. Memo используется как промежуточный компонент. Но теперь другой вопрос: Как мне выбрать конкретные столбцы из DBGrid? В Excel можно, конечно, потом удалить лишние, но нужно, чтобы туда попадали только нужные данные. И еще один вопрос: Можно при передаче данных перевернуть таблицу? Так, чтобы столбцы из DBGrid-а стали строками, а строки столбцами? |
| Автор: Demo 27.11.2006, 12:49 | ||
Подскажите, пожалуйста, как это должно выглядеть программно?! Каким образом мне это описать? Например, мне нужны столбцы 2,4,6,7,11? |
| Автор: mihanik 27.11.2006, 16:45 |
| Модератор: Пожалуйста, один топик - один вопрос. Понимаю, что вопросы связаны по смыслу, но всё же... Добавлено @ 16:50 Кроме того! Это ближе к Delphi и базы данных... Посему перемещаю... |
| Автор: Savek 27.11.2006, 17:04 |
| Использовать Clipboard для экспорта категорически не рекомендуется. У пользователя там могут быть данные, которые будут утеряны |
| Автор: Rodman 27.11.2006, 17:09 | ||
мож это поможет...
Добавлено @ 17:10 и http://www.swissdelphicenter.ch/torry/printcode.php?id=1427 почитай |
| Автор: Akella 28.11.2006, 09:59 |
| я уверен, что вопрос из этой темы http://forum.vingrad.ru/delphi-activex-com-corba-ole.html Там это уже обсуждалось сотни раз Добавлено @ 10:02 Demo, и ещё, DBGrid тут не причём, т.к. DBGrid всего лишь отображает данные из TDataSet`а, с DataSet`ом и работай. Добавлено @ 10:04 Demo, вот, смотри, шикарная тема: http://forum.vingrad.ru/topic-84634.html |