![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| alexe |
|
|||
|
Unregistered |
Здравствуйте!
Использую подсоединение к Excel: procedure TForm1.Button1Click(Sender: TObject); var ibook:Excel97.ExcelWorkbook; isheet:Excel97.ExcelWorkSheet; begin xl.Connect; xl.Visible[0]:=True; xl.ScreenUpdating[0]:=True; ibook:=xl.Workbooks.Add(null,0); isheet:=ibook.Worksheets.Item['Лист1'] as Excel97.ExcelWorkSheet; end; Пробовал использовать isheet.Columns.Column[1] .... , но выдается ошибка. Пытался использовать данные макроса VB из Exel, но так и не смог адаптировать его для Delphi. Максимум чего добился - выделил все столбцы (isheet.Columns.Select;). Заранее благодарен! |
|||
|
||||
| Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Выделение строки (диапазона строк)
Выделение столбца
alexe Существует, специально созданный для таких вопрос подфорум, зачем надо было помещать этот топик здесь? Это сообщение отредактировал(а) Cashey - 18.5.2004, 10:41 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
To Cashey
Подфорум я просмотрел, но основной упор там на программировании в VB, а мне нужно на Delphi, поэтому и посчитал, что вопрос нужно поместить в этот раздел. Что касается Вашего ответа, то на попытку использовать xl.columns(2).select (xl: TExcelApplication;) при компиляции выдается ошибка: [Error] Unit1.pas(38): Missing operator or semicolon Я так думаю, что здесь неправильный формат свойства Columns, а вот где узнать правильный - я не знаю (метод перебора возможных написаний не помог). |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Ex1 - компоненте сос траницы Servers
Если, что не понятно, обращайся.
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
To dsergey
Спасибо за код, нашел кое-что интересное, обязательно попробую, НО так и не нашел, как же выделить ВСЮ колонку (может проглядел!?), а не отдельную ячейку или диапазон. Может быть плохо объясняю, что нужно... Мне нужно скрывать определенные столбцы в результате выполнения программы. Если я правильно понимаю, перед скрытием нужно этот самые столбцы выделить. А во всех примерах, которые я нашел, оперируют с отдельными ячейками (диапазоном) и нигде не видел, чтобы работали со всем столбцом (строкой). Хотел вытащить нужную функцию из макроса, но так и не смог его извернуть для Delphi, все время получал ошибки. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Для удаления я использую удаление не колонки а диапазона.
Range.Delete тебе этот код о чем-нибудь говорит попробуй перевести на Delphi, я тоже попробую, посмотрим, что получится Columns("C:C").Select Selection.Delete Shift:=xlToLeft |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
я попробовал так
Var Sheets,Colums:Variant; begin ... Sheets.Colums('D:D').Delete нормально удалилось. У меня кстати Off XP |
|||
|
||||
| alexe |
|
|||
|
Unregistered |
To dsergey
Пробовал по-всякому до этого и сегодня полтара часа убил на это. Сыплет ошибками, хоть тресни, причем никак не могу узнать, что в качестве параметров передавать. Зато набрел на кое-что интересное. Если не упираться в выбор колонки, а сразу попытаться скрыть, то ошибки выдаются уже другие Если набрать isheet.Columns.Hidden['1','1'] ; то выдается несовместимость типов Integer и Char на этапе компиляции. Если набрать isheet.Columns.Hidden[1,1] ; или isheet.Columns.Hidden[1] ; то выдается EVariantError "Variant is not an array". Может так что-нибудь получится, но описание свойства Hidden в модуле excel97.pas: property Hidden: OleVariant dispid 268; меня ни на какие мысли не наводит Может быть знаешь, какие параметры нужны? Единственно, чего добился вразумительного, то это возможность выбора строки, хотя сам механизм выбора опять же непонятен isheet.Range['1:1','1:1'].select; Если менять любое (!) число, то это определяет количество выбираемых строк, причем выбирается любое (!) наибольшее из значений. В общем, вопросов только прибавилось... Поздно обновился. У меня Office 97. Попробовал sheets.Columns['d:d'].delete ; Получил EVariantError "Variant does not reference an automation object" А объявления Sheets,Colums:Variant; достаточно, или нужны какие-либо еще. Подключение к Excel прежнее, добавил в код только пробуемую строку(без добавок), ну и описание в var соответственно. Это сообщение отредактировал(а) alexe - 20.5.2004, 09:14 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Процедура экспорта таблицы в Excel
tRekv, tZay - таблицы Excel - объявлено в начале модуля (Excel:Variant) dbGridZay - TDBGrid (проверка, какие столбцы скрытые перед экспортом)
Добавлено @ 08:04 Переходи на Delphi7 и OfficeXP |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Большое спасибо за информацию!
Кажется, количество полученной информации должно вот-вот перерасти в новое качество Самое главное, в цикле статей "Заметки программиста" из журнала Компьютер-Пресс нашел очень интересный факт: "... использование вариантов (позднее связывание) проще, удобнее, а главное - намного понятнее, чем непосредственная работа с интерфейсами (раннее связывание)." Автор статьи, используя раннее связывание, как и я, пытался выполнить действие с колонкой, но так и не смог. Что, в общем-то, и подтверждается моей практикой. Короче говоря, пора переходить на позднее связывание, что я и вижу в твоих работающих (!) примерах. А на счет перехода на Office XP, это, к сожелению, технически невозможно. Вот поставить себе новую версию Delphi 6 или 7 в планах есть, но пока не знаю, что лучше по нетребовательности к ресурсам (у меня Celeron 1ГГц / 128 МБ DIMM / Win98SE и необходимость одновременной работы, помимо Delphi, с 2-3 сессиями Access одновременно) и по устойчивости в работе. Так что пока собираю информацию. Но это так, мысли вслух. Еще раз большущее спасибо!!! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Добавь 128 памяти, и переходи на WinXP. А процессор для программирования у тебя вполне нормальный.
Я работаю и с ранним связыванием, и с позним связыванием. Так получилось. Импорт из Excel - через компоненту на странице Servers, Экспорт в Excel - через Ole |
|||
|
||||
| Гость_alexe |
|
|||
|
Unregistered |
To dsergey
Пока ни на какой Windows перейти не могу. У нас так хитро заморочена сеть, что ПК с Win2k/WinXP пропадают у остальных пользователей в сетевом окружении. Подскажи, пожалуйста, а сильно придется "переучиваться" при переходе с Delphi 5.5 на 7, и, самое главное, нет ли каких неприятных "особенностей" у 7 версии. У меня жесткая привязка к Office 97, точнее к Access 97, поэтому если 7 версия вдруг не поддерживает Access 97, то придется переходить на 6. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Delphi 7 поддерживает и 97, и 2000, и XP.
Переход на Delphi 7 безболезненный, по крейней мере пока о проблемах не слышал не от кого. Так что дерзай. а в модуле я могу указать в секции uses Excel97 или Excel2000, или ExcelXP, или и то, и другой, и можно без хлеба. Только некоторые параметры нужно менять, как, например, при открытии файла количество параметров разное. Это сообщение отредактировал(а) dsergey - 25.5.2004, 08:24 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |