| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Delphi: экспорт из DBGrid в MS Excel - ошибка |
| Автор: Solominka 21.4.2011, 19:38 | ||
| В общем нужен экспорт выделенной строки из DBGrid в MS Excel. Очень хотелось бы узнать, как это реализовать. К слову, экспорт у меня пока не работает совсем даже обычный, пишу вот такой код:
Пишет ошибку "Undeclared identifier: 'CreateOleObject'". В чём может быть дело? |
| Автор: Novichek27 21.4.2011, 19:55 | ||
procedure Excel2();
вот для примера, попробуй... Добавлено @ 19:59 а вообще в uses ComObj, OleCtrls объявлены? |
| Автор: Solominka 21.4.2011, 20:11 | ||
| Novichek27, к сожалению, ошибок ещё больше... =__= Добавлено через 1 минуту и 10 секунд
Ээээ... Нет... А как объявить? Я просто что-то нигде этого не нашла... |
| Автор: Novichek27 21.4.2011, 20:22 | ||
в самом начале Unit'a
|
| Автор: ~FoX~ 21.4.2011, 20:24 | ||
В третьей секции проекта
|
| Автор: Solominka 21.4.2011, 21:07 | ||
| Объявила... Но выдаёт ошибки... Почти всё поняла откуда взялось и как исправить... Но на что исправлять
Конкретно, жалуется на frmORDER |
| Автор: ~FoX~ 21.4.2011, 21:15 |
| Это дбгрид лежащий на форме с названием frmORDER.... Ни в твоем ни в коде Novichek27, нету объявления этой формы.... Где ты ее вообще нашел??? Добавлено через 20 секунд |
| Автор: Novichek27 21.4.2011, 21:26 | ||
frmORDER - это имя формы, просто переименуй на Form1 |
| Автор: Solominka 21.4.2011, 21:26 | ||
| ~FoX~, спасибо, убрала строчку - заработало. Но теперь другая проблема, при открытии Excel выходит ошибка "Неверный индекс" выделяет строчку
|
| Автор: ~FoX~ 21.4.2011, 21:28 |
| Solominka, В книге должен быть лист с названием Добавлено через 49 секунд Проще обращаться по индексу... |
| Автор: Solominka 21.4.2011, 21:36 | ||
А как мне это сделать, если у меня, допустим, стандартно, Лист1...? |
| Автор: ~FoX~ 21.4.2011, 21:39 | ||
|
| Автор: Novichek27 21.4.2011, 21:40 |
| или вместо ['Отчёт по запросу'] пиши ['Лист1'] |
| Автор: Solominka 21.4.2011, 21:48 | ||
Спасибо, я так и сделала Ещё пара вопросиков по теме. Нужно, чтобы был экспорт только выделенной строки, а не всего DBGrid-а. Как это реализовать? |
| Автор: Novichek27 21.4.2011, 21:58 | ||||
эту строчку верни на место
DBGrid1 сделай MultiSelect в настройках Options и пробуй... Добавлено через 10 минут и 39 секунд
вообще-то это и был вопрос темы |
| Автор: Solominka 21.4.2011, 22:14 | ||||
Сделала.
Если возвращаю - опять ошибку пишет... |
| Автор: ~FoX~ 21.4.2011, 22:18 |
| Скучно с вами ночью сидеть Какую ошибку? |
| Автор: Solominka 21.4.2011, 22:19 | ||
Ну да, но вообще-то сначала я потом на другое отвлеклась... Всё, работает! Были кое какие проблемы из-за невнимательности... Всем большое спасибо за помощь! |
| Автор: Novichek27 21.4.2011, 22:20 | ||
текст ошибки какой? напиши здесь |
| Автор: Solominka 21.4.2011, 22:25 | ||
| Хммм... А не могли бы вы ещё одну вещь подсказать... Ну чтобы данные из строки грида как бы в столбик отображались: "Наименование" - значение "Адрес" - значение и т.д. а не в строчку, как сейчас... А то я что-то запуталась с этими индексами... Я так понимаю нужно тут что-то исправить, или нет?
|
| Автор: Novichek27 21.4.2011, 22:29 |
| Sheet.Cells[2,1]:='Имя 1-го столбца'; Sheet.Cells[2,2]:='Имя 2-го столбца'; Sheet.Cells[2,1] 2-номер строки, 1-номер столбца все... |
| Автор: Solominka 21.4.2011, 22:31 | ||||
Да уже никакой. Просто забыла переименовать dFrm на Form1 Добавлено через 5 минут и 1 секунду
Да, но теперь значения полей отображаются не корректно. Мне надо чтобы они располагались рядом (напротив Имени столбца), а оно сейчас располагается ПОД ним... В общем вопрос в том, наверное, как регулировать расположение значений строки. |
| Автор: ~FoX~ 21.4.2011, 22:42 |
| Слева на право, с верху вниз.... Поменяй координаты местами... Добавлено @ 22:46 Через сколько тебе это сдать нужно? |
| Автор: Solominka 21.4.2011, 22:48 | ||
Как именно поменять то? Я уже по-всякому меняю - оно всё как-то криво :( |
| Автор: ~FoX~ 21.4.2011, 22:49 |
Сори посмотрел не туда.... Sheet.Cells[1,1]:='Имя 1-го столбца'; Sheet.Cells[2,1]:='Имя 2-го столбца'; Sheet.Cells[1,2]:= '1-номер строки, 1-номер столбца Sheet.Cells[2,2]:= '2-номер строки, 2-номер столбца |
| Автор: Solominka 21.4.2011, 22:59 | ||||
Не поняла... Всё равно как-то криво выходит :( Добавлено через 4 минуты и 27 секунд
До конца этой недели сделать нужно. А там ещё работы непочатый край. Есть ещё кое какие проблемы с некоторыми рассчётными столбцами, плюс осталось сделать примитивные примочки типа поиска и "причесать" внешний вид программы. И на всё провсё, по сути пара дней. Так что мне как-то вот не смешно, увы :( |
| Автор: Solominka 22.4.2011, 10:52 | ||
| Всё, я разобралась сама уже, всем спасибо. Просто оказывается менять надо было расположение результатов ещё тут:
|