Отчет в Excel или не проходит ответ


6 0

Или у меня дежавю, или мне уже приходило несколько писем от ikrik0719@mail.ru. Я пытаюсь ответить, но мне возвращаются ошибки о том, что письмо не доходит. Человек пишет, что я его игнорирую, но по почте я никого не игнорирую, я просто не могу ответить. Если неправильно введен ящик, то я не виноват. Раз другого варианта нет, то отвечу уважаемому ikrik0719 прямо через блог:

Уважаемый ikrik0719, твой пример с отчетом в Excel откомпилируется без проблем, а вот выполнится с ошибкой. Ты после создания коннекта с Excel сразу обращаешся к рабочей книге WorkBooks, но ее не существует. Нужно сначала создать рабочую книгу. Вот корректный пример создания коннекта к Excel из Delphi:

 XLApp := CreateOleObject('Excel.Application');
 XLApp.Visible := True;
 XLApp.WorkBooks.Add; // создание книги 
 XLApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет';

Выделенной строки у тебя в коде нет, но без нее будет ошибка.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Ikrom

11 Февраля 2009

Здравствуйте, Михаил!

Благодарю за ответ и прошу простить, что этим занял Ваше время... Дело в том, что у меня на почту все Ваши письма кроме вот этого по поводу Excel, доходят ....

А вот насчет вопроса, все то, что написали, я тоже писал... Немогу сделать так, чтоб в Errors не выводилось: WorkBooks, Columns,WorkSheets ... Undeclared Identifier... Если можно помогите пожалуйста в этом вопросе...

Огромное спасибо!

Заранее благодарен!


мальчик из MicroSoft

11 Февраля 2009

на сайте под Дельфи 2009 имеется ссылка Porno, ведущая на сайт эрот. содержания. Вы продвигаете черными методами получается?


Михаил Фленов

11 Февраля 2009

2Ikrom
Не понял, у тебя даже со строкой XLApp.WorkBooks.Add; ошибка?

2мальчик из MicroSoft
Это не я, я только разрешил :). И ничего тут черного нет.


Ikrom

11 Февраля 2009

День добрый, Михаил!

С этой строкой проблем нет... В Errors выводит как Undeclared Indentifier после этой строки:
XLApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет';

и дальше... именно после того как ставлю квад. скобки, а без них Errors пуст, но прога не работает... Т.о. с этим кодом запускается, но папка Errors не пуста....

Я тут прочитал, что если "идентфикатор не является свойством или методом класса, в котором он вызывается" то в Errors  они будут как Undeclared Identifier.... но как это можно исправить?

На Вашу почту отправил скрин

Благодарю за внимание!


Михаил Фленов

11 Февраля 2009

Ошибки просто не должно быть. Единственное, что я могу предположить - у тебя рабочая книга создается без листов. WorkBooks существует, но он пустой и нет ни одного листа WorkSheets. В свойствах Excel можно указать количество создаваемых при создании листов. По умолчанию у всех было 3.


Михаил Фленов

12 Февраля 2009

Попробуй оставить только эти три строки:


XLApp := CreateOleObject('Excel.Application');
XLApp.Visible := True;
XLApp.WorkBooks.Add;


Когда запустится Excel, посмотри, сколько у него страниц создано


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне