Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
#1

Связать Delphi с Excel - Delphi

01.06.2017, 07:46. Просмотров 413. Ответов 17
Метки нет (Все метки)

Добрый день! Программисты, знающие Delphi, помогите пожалуйста, очень нужно!!
Не получается решить проблему, она такова:
На форме расположены компоненты "ComboBox1_count", "Edit_time" и "Edit1_predmet". При выборе определенного значения в ComboBox1_count (например "1"), в поле "Edit_time" выводится соответствующее значение времени звонков (оно для справки пользователю), а записанный в поле "Edit1_predmet" учебный предмет заносится в соответствующую ячейку Excel. Но при выборе какого-либо значения в поле "ComboBox1_count" Delphi выдает ошибку: Invalid variant operation
Когда удаляю строку temp.Range['E10'] := Form1_week.Edit1_predmet.Text; и все остальные аналогичные, то ошибка не выходит, а необходимо эти два поля связать между собою.
Код процедуры и шаблон в Excel, куда нужно занести данные, приведены на фото
0
Миниатюры
Связать Delphi с Excel   Связать Delphi с Excel  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2017, 07:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Связать Delphi с Excel (Delphi):

Как в Delphi сделать Excel таблицу, не употребляя компонент TStringGrid и связать ее с Delphi
Как в Delphi сделать Excel таблицу, не употребляя компонент TStringGrid и...

Как связать Delphi и Excel?
Нужно чтоб программа брала данные из таблиц excel и работала с ними в делфи,...

Delphi связать
как в программе связать между собой 2 таблицы база данных table1 и table 2...

Как связать таблицу с delphi?
Подскажите пожалуйста: у меня есть таблица чисел необходимая для интерполяции,...

Delphi связать несколько dbgrid
Уважаемые программисты у меня есть программа (ссылка на программу...

Связать ComboBox и Edit в Delphi
Не могу разобраться. Есть форма. На нем ComboBox (внутри список/прайс лист с...

17
TFullControl
390 / 314 / 186
Регистрация: 20.10.2016
Сообщений: 1,010
01.06.2017, 08:58 #2
Зачем столько ифов?
Удобнее через case
Delphi
1
2
3
4
5
  case ComboBox1.ItemIndex of
    1: begin Edit1.Text:=''; Excel.Range['E10']:='xxx'; end;
    2:
    3:
  end;
И собственно по вопросу, данный код рабочий, проверяйте как вы создаете объект, связанный с Excel.
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 09:39  [ТС] #3
Спасибо, но все равно выходит та же самая ошибка

Связь с Excel осуществляю таким образом
Delphi
1
2
3
temp := CreateOleObject('Excel.Application'); // Создание OLE-объекта
  temp.Workbooks.Open('C:\Users\Пользователь\Desktop\Новый диплом. Delphi XE6\raspisanie');
  temp.Visible := True;
Добавлено через 11 минут
Может, существуют еще какие-нибудь способы записать данные в Excel?
0
TFullControl
390 / 314 / 186
Регистрация: 20.10.2016
Сообщений: 1,010
01.06.2017, 09:43 #4
Цитата Сообщение от Stepan P Посмотреть сообщение
Может, существуют еще какие-нибудь способы записать данные в Excel?
Пробуйте через ячейку, а не диапазон.
Delphi
1
Excel.Cells[5, 3]:='s';
0
Puporev
Модератор
54148 / 41781 / 28887
Регистрация: 18.05.2008
Сообщений: 98,330
01.06.2017, 09:53 #5
Stepan P, Приводите код текстом, обрамленным тегами DELPHI, а не картинкой.
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 11:42  [ТС] #6
Пробовал, все равно выходит та же самая ошибка.
Вместо компонента ComboBox поставил RadioGroup, переписал процедуру под него, но, при выборе любого числа в нем (от 1 до 7), опять вылазит эта ошибка: Invalid variant operation
0
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
01.06.2017, 12:41 #7
Ты выложи проект, посмотрим
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 12:51  [ТС] #8
В форме "Unit4_week" сначала выбирается номер пары в RadioGroup1, потом все остальное. С excel пока лишь связаны поля семестр, группа, курс, выбор предмета
0
Вложения
Тип файла: rar Проект.rar (2.87 Мб, 4 просмотров)
TFullControl
390 / 314 / 186
Регистрация: 20.10.2016
Сообщений: 1,010
01.06.2017, 13:31 #9
Вы создаете объект temp только после того как нажимаете на кнопку сформировать расписание, соответственно, если она не была нажата, а вы клоцаете по RadioGroup у вас идет обращение к объекту, не имеющего отношения к Excel, вот вам и ошибки.
И еще момент, у вас все равно ничего не заработает по причине этого
Delphi
1
temp.Workbooks.Open('C:\Users\Пользователь\Desktop\Новый диплом. Delphi XE6\raspisanie');
Я ну очень сомневаюсь, что на вашей машине и на всех машинах, на которых планируете запускать ПО существует пользователь с именем "Пользователь" на рабочем столе которого лежит файл без расширения.
Я так понимаю вы программист 5 курс ПГТУ?
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 13:55  [ТС] #10
За обьяснение ошибки-спасибо)). Попробую
А путь к файлу-все верно. Программу только разрабатываю. Естественно, что после написания и внедрения будет другой путь или метод доступа
4 курс последний. А как вы догадались про пгту?)
0
TFullControl
390 / 314 / 186
Регистрация: 20.10.2016
Сообщений: 1,010
01.06.2017, 13:59 #11
Цитата Сообщение от Stepan P Посмотреть сообщение
А как вы догадались про пгту?)
Мы же на форуме телепатов или я ошибся адресом?
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 14:06  [ТС] #12
А по поводу, что оно из-за пути не заработает... Оно работает
0
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
01.06.2017, 15:49 #13
Stepan P, скажи

Delphi
1
2
3
4
5
6
7
8
if RadioGroup1.ItemIndex=1
// Trim - удаляет пробельные и управляющие символы (такие как перевод строки) в начале и в конце строки.
// AnsiUpperCase - переводит символы строки в прописные буквы
    then begin
      Edit_time.Text := '8:00-8:45, 8:50-9:30';
      ed := Edit_predmet.Text;
      excel.Range['E10'] := ed;
    end;
где у тебя переменная excel инициализируеться
0
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 15:52  [ТС] #14
Сейчас уже разделе var этой функции, пытаюсь доделать, раньше была глобальной
0
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
01.06.2017, 15:56 #15
Вот мной подправленный unit_week посмотри что там и как вроде работает, скопируй свой куда-нибудь, а в проект положи подправленный и попробуй у меня в роде работает

Да еще не увидел где освобождаешь выделенную память под Excel
0
Вложения
Тип файла: rar Unit4_week.rar (6.3 Кб, 2 просмотров)
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 16:09  [ТС] #16
Не записывает выбранный предмет из Edit_predmet. А у тебя это получается?
0
Zombi_sib
365 / 319 / 88
Регистрация: 26.05.2010
Сообщений: 744
Завершенные тесты: 1
01.06.2017, 16:16 #17
вот что пишет, я же не знаю что должно быть
0
Миниатюры
Связать Delphi с Excel  
Stepan P
0 / 0 / 0
Регистрация: 21.05.2015
Сообщений: 23
01.06.2017, 16:22  [ТС] #18
Хм-м, странно... Попробую поразбирать код, может найду причину
Большое тебе спасибо за помощь!
0
01.06.2017, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2017, 16:22
Привет! Вот еще темы с решениями:

Delphi, MSSQL, связать программу с бд через интернет
Мне для дипломного проекта надо создать программу учета товаров, я хочу сделать...

Excel - Delphi - Excel
Доброго времени суток! Дело в следующем - мне очень надоело/нехочется/......

Delphi и Excel
Добрый день! Вставляю в excel данные из таблицы, во сем столбце данные только...

Delphi+Excel
Задача: 1. При нажатии считать из текстового файла 1.txt матрицу (к примеру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru