Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2014, 19:47   #1
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию Вывод в Excel

Здравствуйте!
Подскажите, пожалуйста, как вывести в Excel 3 столбца из таблицы (в таблице 5 столбцов).
Данные столбцы нужно вывести в определенный диапазон ячеек. Причем таблица будет расти, и диапазон увеличиваться.
Заранее спасибо!
Anastasia12.02. вне форума Ответить с цитированием
Старый 18.05.2014, 20:34   #2
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Если поможет, БД MySQL. Подключаюсь к БД через AdoQuery.
Не могу сообразить, как вывести только определенные столбцы.
К примеру столбец name в диапазон ячеек С3-С20, столбец syrname в D3-D20, столбец patronymic в F3-F20.
Выручите, пожалуйста!
Anastasia12.02. вне форума Ответить с цитированием
Старый 18.05.2014, 21:03   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

затруднения в чем?
eval вне форума Ответить с цитированием
Старый 19.05.2014, 08:14   #4
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Затруднение в том, что я вывожу только одну строку
Код:
procedure TForm4.btn2Click(Sender: TObject);
var xls:variant;
begin
xls := CreateOLEObject('Excel.Application');
xls.WorkBooks.Open(FileName := 'c\Program Files (x86)\naklad.xls');
xls.Visible:=True;
xls.DisplayAlerts := False;
Form10.qry1.Open;

xls.Range['CX24']:=Form10.qry1.FieldByName('name').AsString;
xls.Range['CC24']:=Form10.qry1.FieldByName('syrname').AsString;
xls.Range['K24']:=Form10.qry1.FieldByName('patronymic').AsString;

xls.Visible := true;
end;
Если в Range писать диапазон ячеек, то выводит одну и туже строку во все ячейки.
Как сделать, чтобы выводились все строки?
И как сделать, чтобы диапазон ячеек не редактировался? К примеру, сегодня вывожу 3 строки, а завтра уже добавила запись и надо вывести 4 строки.
Anastasia12.02. вне форума Ответить с цитированием
Старый 19.05.2014, 16:15   #5
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Никто не знает решение проблемы???
Anastasia12.02. вне форума Ответить с цитированием
Старый 19.05.2014, 16:34   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Затруднение в том, что я вывожу только одну строку
А, кто обход строк DataSet'а делать будет? Сама по себе позиция при чтении DataSet'а не изменяется.
Streletz вне форума Ответить с цитированием
Старый 19.05.2014, 17:26   #7
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
А, кто обход строк DataSet'а делать будет? Сама по себе позиция при чтении DataSet'а не изменяется.
А как сделать???
Anastasia12.02. вне форума Ответить с цитированием
Старый 19.05.2014, 17:30   #8
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Код:
repeat
  xls.Range['CX'+IntToStr(strNum)]:=Form10.qry1.FieldByName('name').AsString;
  xls.Range['CC'+IntToStr(strNum)]:=Form10.qry1.FieldByName('syrname').AsString;
  xls.Range['K'+IntToStr(strNum)]:=Form10.qry1.FieldByName('patronymic').AsString;
  inc(strNum);
until
  Form10.qry1.Next=true;
Приблизительно, как-то так.
Код я писал прямо на форуме, что называется "на вскидку". Поэтому, не проверял.

Последний раз редактировалось Streletz; 19.05.2014 в 21:45.
Streletz вне форума Ответить с цитированием
Старый 19.05.2014, 17:38   #9
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Streletz, тогда следующая строка будет в ячейках CX25, CC25, K25?
Anastasia12.02. вне форума Ответить с цитированием
Старый 19.05.2014, 21:48   #10
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
тогда следующая строка будет в ячейках CX25, CC25, K25?
О перемещении по строкам Excel, тоже нужно позаботиться.
Вверху я не много поправил код, однако всё равно нужна проверка.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в Excel Sleepy Общие вопросы Delphi 2 19.12.2012 22:46
Вывод из Excel в C# gslim C# (си шарп) 6 08.06.2011 15:14
Массивы. Вывод в Excel Джиган Microsoft Office Excel 1 10.04.2011 20:15
Вывод StringGrid в Excel. Asblue Помощь студентам 0 01.11.2010 19:11
Вывод данных в Excel Novi4ek Помощь студентам 3 22.05.2008 11:32