1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
||||||||||||||||
1 | ||||||||||||||||
Работа с отфильтрованными строками в Excel22.03.2024, 10:54. Показов 777. Ответов 15
Метки нет (Все метки)
Добрый день уважаемые форумчане.
Уже второй день ломаю голову над этой проблемой. Нужно открыть книгу эксель, отфильтровать значения по цвету ячеек и из отфильтрованных ячеек в массив скопировать текстовые данные. Если с открытием и фильтрацией проблем нет, то как считать данные из отфильтрованных ячеек? Меня уже скоро наверное в гугле забанят. Вот процедура нажатия кнпки, которая запускает открытие и работу с эксель: Кликните здесь для просмотра всего текста
Проблема в куске кода, выделенном красным. А он что-то не выделился. Тогда напишу его отдельно:
0
|
22.03.2024, 10:54 | |
Ответы с готовыми решениями:
15
Действия над отфильтрованными строками Работа со строками в Excel Работа со строками и ячейками в excel Работа со строками Excel макрос |
4918 / 2786 / 854
Регистрация: 04.10.2012
Сообщений: 10,140
|
||||||
22.03.2024, 11:39 | 3 | |||||
В чем она выражается? Конкретная ошибка?
Добавлено через 4 минуты Не вижу у Вас в коде объявление констант
0
|
1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
|
22.03.2024, 11:56 [ТС] | 4 |
если не смогу разобраться, то именно так и сделаю. А может вообще подключу таблицу как бд через АДО. Но это уже дело принципа)
Да, там ошибка олевариант Насколько я успел разобраться в вб объявляется массив и этому массиву сразу же присваивается отфильтрованный массив ячеек excel. В делфи это ведь так не работает. Но вероятно этот фильтрованный массив можно присвоить стрингриду или дбгриду. Примеры какие то видел. После обеда посмотрю.
0
|
3048 / 1668 / 656
Регистрация: 19.03.2019
Сообщений: 5,372
|
|
22.03.2024, 14:58 | 5 |
esgard, если у тебя будут проблемы с тем, чтобы прочитать отфильтрованные ячейки, то воспользуйся советом, данным выше - читай все ячейки из нужного диапазона и в Delphi отбирай нужные.
0
|
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
|
|
23.03.2024, 11:45 | 6 |
Так и надо было сделать сразу. Зачем вам такая сложная многоходовка с запуском ненужного в данной задаче экселя?
0
|
1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
|||||||||||
23.03.2024, 14:49 [ТС] | 7 | ||||||||||
Промучавшись еще денек, реши последовать вашим советам и тут же получил по лбу другой граблей:
для подключения к формату *.xlsx нужен ведь соответствующий ODBC драйвер. У меня стоит офис 2013х64. А делфи х32. И он этот драйвер не видит. Точнее не он, а адо. Пробовал и так прописывать:
и так:
В ODBCx32 такая картина: видимо потому что там судя по всему все равно драйвер для х64 прописан. И тут проблему никак не обойти. кроме как сноса офиса х64 и заменой его на х32?
0
|
3760 / 2264 / 705
Регистрация: 29.05.2013
Сообщений: 9,616
|
|
23.03.2024, 17:51 | 8 |
Нет, для доступа к микрософтовским форматам данных, ставить офис нет необходимости, достаточно скачать с офсайта и установить Microsoft Access Database Engine 2016 Redistributable Конечно проще с базами акцес работать в акцесе, а с книгами эксел в экселе, но для доступа к данным они не обязательны.
0
|
1180 / 421 / 107
Регистрация: 31.03.2012
Сообщений: 1,150
|
||||||
24.03.2024, 19:58 | 9 | |||||
esgard, посмотри (D7), возможно чем-то поможет
Кликните здесь для просмотра всего текста
Не по теме: файлик Excel (2010) над которым издевался во вложении. второй столбец содержит условное форматирование, числа больше 50 выделены красным цветом. в третьем слолбце меньшие 50 - зеленым
0
|
1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
|
25.03.2024, 08:43 [ТС] | 11 |
это первое что я попытался сделать. х64 ставиться без проблем, но программой драйвер опять же не видится. А х32 отказывается ставится при установленном оффисе х64.
эти два модуля ты сам писал? А каким образом из под делфи х32 написать программу х64? Или я неверное понял мысль?.. Во всяком случае делфи 7 х64 вроде бы не существует. На что-то более новое тогда переходить.
0
|
1180 / 421 / 107
Регистрация: 31.03.2012
Сообщений: 1,150
|
|
25.03.2024, 10:32 | 13 |
Menu -> Project -> Import Type Library -> выбираем [Microsoft Excel ... (Object library)]
устанавливаем галочку "Create Component Wrapper", указываем путь, где будут расположены сгенерированные модули (Unit dir name) и жмем кнопочку "Create unit"
0
|
1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
|||||||||||
02.04.2024, 11:56 [ТС] | 15 | ||||||||||
Последовал вашему совету. Поставил Делфи 11 с возможностью компилировать программу под х64.
Но проблемы те же самые. опять ошибка при попытке коннекта к экселю.
Код подключения стандартный: Кликните здесь для просмотра всего текста
И опять эта ошибка: "Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EDatabaseError with message 'Missing Connection or ConnectionString'."
0
|
1 / 1 / 0
Регистрация: 07.09.2021
Сообщений: 101
|
|
02.04.2024, 13:19 [ТС] | 16 |
Аа, так там же есть FireDAC еще. Буду пробовать через него...
0
|
02.04.2024, 13:19 | |
02.04.2024, 13:19 | |
Помогаю со студенческими работами здесь
16
Работа с текстовыми строками. Создание макросов в Excel Формула крамера линейные уравнения. Работа со строками. Excel Работа с текстовыми строками. Базовые операции со строками Работа со строками, заполнить компоненты строками из файла Работа с текстовыми строками. Дополнительные работы со строками Работа со строками. Функции работы со строками Работа со строками(операции над строками) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |