Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.11.2018, 14:40
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 148
Репутация: -1588
По умолчанию Данные из Excel

Доброго дня всем. Возник вопрос при получении данных из файла Excel. Данные берутся из файла и грузятся в RichEdit. Если делать таким образом:
Код:
var
Ex, WorkBook, Sheet, dir, mon, dat, sl: Variant;
d1 : String;
d1:= Sheet.Range['AC6'];
 begin
 dir:=Edit1.Text;
 sl:=Edit4.Text;
 mon:=Edit2.Text;
 dat:=Edit3.Text;

 Ex := CreateOleObject('Excel.Application');
 WorkBook := Ex.WorkBooks.Open(''+(dir)+''+(sl)+''+(mon)+'.xls');
 Sheet := WorkBook.WorkSheets[dat];

 RichEdit1.Clear; 
 RichEdit1.Lines.Add(''+d1+'');

  Ex.ActiveWorkBook.Close(0); 
  Ex.Quit;
Все читается, все нормально. Но тут получается что адреса ячеек в теле программы, что не есть хорошо. Хочу сделать возможность менять адреса. Что то типа такого:
Код:
var
Ex, WorkBook, Sheet, dir, mon, dat, sl: Variant;
d1 : String;
d1:= Sheet.Range['LabeledEdit1.Text'];
 begin
 dir:=Edit1.Text;
 sl:=Edit4.Text;
 mon:=Edit2.Text;
 dat:=Edit3.Text;

 Ex := CreateOleObject('Excel.Application');
 WorkBook := Ex.WorkBooks.Open(''+(dir)+''+(sl)+''+(mon)+'.xls');
 Sheet := WorkBook.WorkSheets[dat];

 RichEdit1.Clear; 
 RichEdit1.Lines.Add(''+d1+'');

  Ex.ActiveWorkBook.Close(0); 
  Ex.Quit;
То есть я могу указать в LabeledEdit с какой ячейке брать какие данные.
При таком варианте, не может найти ячейку в книге, ругается Excel при открытии. В чем мой так сказать, косяк? Благодарю за помощь.
  #2  
Старый 02.11.2018, 22:00
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,233
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

В том, что ты тормоз:
Код:
d1:= Sheet.Range[LabeledEdit1.Text];

PS. Ну и в секцию кода перенеси эту строку
  #3  
Старый 04.11.2018, 08:54
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 148
Репутация: -1588
По умолчанию

При таком варианте
Код:
d1:= Sheet.Range[LabeledEdit1.Text];
не ругается, но и данные не берет. Увы.
  #4  
Старый 04.11.2018, 09:00
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 148
Репутация: -1588
По умолчанию

Цитата:
Сообщение от lmikle
В том, что ты тормоз:
Код:
d1:= Sheet.Range[LabeledEdit1.Text];

PS. Ну и в секцию кода перенеси эту строку

Точно, тормоз. Все работает.
Спасибо за подсказку.
  #5  
Старый 04.11.2018, 19:06
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,233
Версия Delphi: 7, XE3, 10.2
Репутация: 49087
По умолчанию

Да, бывает.
Иной раз смотришь на ошибку и не видишь ее. Сходишь кофейку попить/покурить/с народом потрындеть, глянь, а оно вот оно...
Закрытая тема



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2018

ВКонтакте   Facebook   Twitter