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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2009, 10:06   #11
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Так, во-первых, почему ты пишешь постоянно квадратные скобки ??? Во-вторых, вот очень хороший хоть и краткий online помощник. Посмотри там есть ответы на твои вопросы.
И вот еще в догонку :
http://www.interface.ru/home.asp?artId=9641
http://www.delphikingdom.ru/asp/view...alogid=1273#03
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 09.08.2009, 10:38   #12
---FISHER---
Пользователь
 
Аватар для ---FISHER---
 
Регистрация: 08.08.2009
Сообщений: 68
По умолчанию

Мне в любом случае нужно решить проблему с открытием файла, необходимо чтобы приложение открывало файл Excel именно из папки с exe файлом, как можно записать адрес этой самой родной папки? в какой константе чтоли он храниться?
Самое дорогое, что у нас есть - это время...
---FISHER--- вне форума Ответить с цитированием
Старый 09.08.2009, 10:49   #13
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
необходимо чтобы приложение открывало файл Excel именно из папки с exe файлом
Ну так просто пиши
Код:
Excel.Workbooks.Open('Моя книга.xls');
Да и перед этим можно еще
Код:
Excel.Visible := False;
чтобы сам MS Excel не открывался, а "сидел" в памяти.
Да и чуть не забыл.
Открытие книги для работы с ней лучше вешай на событие открытия формы, если конечно твое приложение просто работает только с этой книгой и все. А при закрытии формы НЕ ЗАБЫВАЙ!!! делать что-то вроде :
Код:
Excel.ActiveWorkbook.Close;
Excel.Application.Quit;
Иначе MS Excel останется в памяти и после примерно 30 запусков твоей проги у тебя может не остаться памяти вообще... полезут новые ошибки и непонятки...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 09.08.2009 в 10:56.
Kotofff вне форума Ответить с цитированием
Старый 09.08.2009, 11:01   #14
---FISHER---
Пользователь
 
Аватар для ---FISHER---
 
Регистрация: 08.08.2009
Сообщений: 68
По умолчанию

Цитата:
Ну так просто пиши
Код:

Excel.Workbooks.Open('Моя книга.xls');
В статье я вычитал:

Цитата:
Если книга находится не в папке указанной в Excel.Application.DefaultFilePath, то нужно указывать полный путь к открываемому файлу .xls, даже если файл находится в текущей папке вашего приложения т.к. Excel ничего про него не знает.
Вот какая загвоздка...Может в какой нибудь константе храниться всё таки родной адрес проги?
Самое дорогое, что у нас есть - это время...
---FISHER--- вне форума Ответить с цитированием
Старый 09.08.2009, 11:53   #15
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Блин, ну хорошо, тогда вернемся к посту №3 и немного его переделаем (хотя это тоже только "в профиль" так сказать) :
Код:
Excel.Workbooks.Open(ExtractFilePath(ParamStr(0)) + 'Моя книга.xls');
Тут ExtractFilePath(ParamStr(0))-это и есть полный путь к твоей проге..
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 09.08.2009, 12:05   #16
---FISHER---
Пользователь
 
Аватар для ---FISHER---
 
Регистрация: 08.08.2009
Сообщений: 68
По умолчанию

Походу глючит не по этому поводу...возможно что то со значениями? Ну типа несовпадение типов? Корректно ли для того чтобы заполнить ячейки воспользоваться вот таким кодом:

Код:
   Excel:= CreateOleObject('Excel.Application');
   Excel.Workbooks.Open(FileName := ExtractFilePath(ParamStr(0)) + 'Образец.xls');
   Excel.Cells[1, 1].Value:=main.year.Text + '' + main.quater.Text; //значение текст. поля 2008-2009гг"
   Excel.Cells[2, 2].Value:=main.clas.Text;//значение текст. поля "5"
   Excel.Cells[3, 20].Value:=subject.Caption;//значение текст. поля "Химия"
   Excel.Cells[4, 20].Value:=main.koluch.Text;//значение текст. поля "30"
   Excel.Cells[5, 20].Value:=usp.Text;//значение текст. поля "28"
   Excel.Cells[6, 20].Value:=neusp.Text;//значение текст. поля "2"
   Excel.Cells[7, 20].Value:=FioNeusp.Text;//значение текст. поля "Петров"
   Excel.Cells[8, 20].Value:=kolotl.Text;//значение текст. поля "1"
   Excel.Cells[9, 20].Value:=fiootl.Text;//значение текст. поля "Иванов"
   Excel.Cells[10, 20].Value:=kolhor.Text;//значение текст. поля "27"
   Excel.Visible := True;
   Excel.ActiveWorkbook.Close;
   Excel.Application.Quit;
Самое дорогое, что у нас есть - это время...
---FISHER--- вне форума Ответить с цитированием
Старый 09.08.2009, 12:09   #17
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Код:
Excel.Workbooks.Open(FileName := ExtractFilePath(ParamStr(0)) + 'Образец.xls');
Что-то лишнее...
Код:
Excel.Workbooks.Open(ExtractFilePath(ParamStr(0)) + 'Образец.xls');
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 09.08.2009, 12:18   #18
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Цитата:
Сообщение от ---FISHER--- Посмотреть сообщение
после закрытия программы...я незнаю что за беда...
Обычно это происходит когда ваша программа обращается к чему-то несуществующем, не обращается ли программа к экселю когда он закрыт?
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!

Последний раз редактировалось DarkEvil; 09.08.2009 в 12:50. Причина: Запоздалый ответ
DarkEvil вне форума Ответить с цитированием
Старый 09.08.2009, 12:30   #19
---FISHER---
Пользователь
 
Аватар для ---FISHER---
 
Регистрация: 08.08.2009
Сообщений: 68
По умолчанию

Я получается совсем дебил, а как его открыть тогда? если не так:

Код:
Excel:= CreateOleObject('Excel.Application');
Excel.Workbooks.Open(ExtractFilePath(ParamStr(0)) + 'Образец.xls');
Самое дорогое, что у нас есть - это время...
---FISHER--- вне форума Ответить с цитированием
Старый 09.08.2009, 12:51   #20
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

Цитата:
Сообщение от ---FISHER--- Посмотреть сообщение
Я получается совсем дебил, а как его открыть тогда? если не так:

Код:
Excel:= CreateOleObject('Excel.Application');
Excel.Workbooks.Open(ExtractFilePath(ParamStr(0)) + 'Образец.xls');
Так открывает все, на какой строчке оно вываливается с ошибкой?
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!
DarkEvil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кавараный Excel!!! Глючит макрос сбора данных. mephist Microsoft Office Excel 32 24.07.2009 06:50
usb глючит reuter Компьютерное железо 4 31.03.2009 09:00
таймер глючит Ganmaker Мультимедиа в Delphi 1 12.11.2008 15:04
Помогите! Глючит Excel Pithon Microsoft Office Excel 8 20.02.2008 07:47
Не работает Excel глючит по страшному? boombox Microsoft Office Excel 2 22.11.2007 12:16