:: Не фоксом единым
Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Речь идёт об Excel и FPD 2.6

Рано или поздно это должно было случиться...

Если с макросами Word дело обстоит более или менее неплохо, то вот в Excele даже простейшие операции вызывают затруднения.

Возьмём простой случай, что называется.

Есть книга Excel. Пусть (для простоты примера) в ней есть название отчёта в первой строке. Первая часть названия постоянная, неизменная. Ну, допустим, такое название "Отчёт по товарам". Далее должно прописываться наименование товара.
Наименование товара есть в dbf-таблице, открытой экселем при запуске самого экселя.

Допустим, была такая команда для запуска:

RUN start excel book1.xls tovar1.dbf

Дак вот. Надо при помощи макроса в tovar1.dbf выделить текст (нет, не ячейку, не строку, не столбец, а именно текст!) из второй строки и первого столбца, и после этого дописать выделенный текст в загодовок отчёта в book1.xls. Проблема ещё в том, что заголовок содержится не просто в ячейке, а в объединённой ячейке, поскольку после заголовка отчёта идёт обычная экселевская бодяга с десятком столбцов и парой сотен строк.

Включаем запись макроса. В принципе, макрос записывается. Но! Когда я выделяю текст из tovar1.dbf по нажатию <Shift-end> и копирую выделенный текст (такое выделение можно сделать в области редактирования текста ячейки в верхней части экрана), то макрос запоминает конкретный выделенный текст, а не команду "выделить весь текст в ячейке".

Копировать же ячейку (не выделяя текста) не получается. Поскольку заголовок отчёта состоит из объединённых ячеек, копирование ячейки из другого листа приводит к тому, что текст вставляется в каждую из ячеек. То есть в данном случае имеем в названии отчёта 10 раз название товара.

Если же говорить "вообще", что надо сделать.

Есть сводная итоговая и довольно примитивная по структуре выходная форма. Получить при помощи обработки данных корректные значения - задача весьма нетривиальная. И речь идёт не о торговле, конечно. И вот все значения подсчитаны "как надо". Остаётся только заполнить лист Excel готовыми значениями. В VFP это, конечно, тривиально. А вот в FPD непросто.

Дак вот. Эту форму я разложил на 4 части. Каждая часть содержится в dbf-таблице. Таблицы я формирую сам по своему усмотрению - средствами FPD. Потом собираюсь запустить Excel и открыть при запуске заготовку Excel-файла (типа исходного шаблона) и ещё открыть 4 dbf-файла. Могу и dbf сохранять в формате Excel II есличо. Далее при помощи макроса заполнить исходный шаблон, после чего закрыть "лишние таблицы", сохранив сформированный шаблон.

Но вот на первом же этапе и остановился. Непонятно, как при помощи макроса дополнять одни ячейки из других ячеек.

В инете примеры читал. Но как-то не удалось ими воспользоваться.

Может быть, у кого-то есть опыт работы с макросами Excel? Или вообще существует другой способ получения таблицы Excel в нужном виде? Вычислять или складывать, кстати, ничего не надо. Всё уже сложено и вычислено. Надо только заполнить лист Excel.



Исправлено 3 раз(а). Последнее : Simple777, 23.04.22 08:29
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Вроде бы дело стронулось с мёртвой точки. По крайней мере название отчёта макрос уже меняет. Остальное "по идее" должно быть полегче, поскольку больше не будет объединённых ячеек. А если и будут, то уже знаю, как с этим бороться. [sm128]
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
В общем-то, не единожды упоминавшаяся в некоторых кругах либа по созданию Excel файлов без самого Excel на фоксе, только на фоксе и ни на чём кроме фокса. Да, там используются фички, которых нет в FPD. Но вспомнив историю появления этих фичек можно быстро догадаться как они были реализованы в FPD. Для чего внимательно посмотреть на fpath.plb, которую я видел даже в виде fpath.prg, но найти ее в таком виде сейчас уже непросто.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Управился со средней, основной частью.

Оказалось, что совсем непросто перейти на следующую после последней заполненной строку. Пришлось в dbf добавлять в конце пустую запись. Иначе перейти через команды макроса не получилось.

Занятная эта работа - отлаживать макросы.
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Люди готовы на очень многое, лишь бы не учиться.



Исправлено 1 раз(а). Последнее : medstrax, 23.04.22 16:58
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Народная мудрость гласит, что надо один век жить, а уже второй - учиться.
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
А еще есть "мудрость не всегда приходит с возрастом, чаще возраст приходит один"
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
А ещё - "возраст - ещё не подвиг".

Тем не менее, за полтора дня закончил эту шнягу. Получился макрос около 500 строк. Вероятно, можно было где-то и покомпактнее сделать, но было немало "тёмных мест". Например, иногда не отрабатывал перенос слов в ячейке в несколько строк. Приходилось явно указывать высоту строки. И таких вот "мелких пакостей" было предостаточно. Но в итоге была получена форма фактически 1:1 И даже несколько компактнее оригинала.

Такшта в принципе макросами можно сделать многое. [sm128]



Исправлено 2 раз(а). Последнее : Simple777, 24.04.22 15:23
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
А еще головой можно гвозди забивать.
Ratings: 0 negative/1 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Можно. Разновидность BDSM, есличо. На любителя, конечно. [sm128]

Вопрос частично по теме.

dbf-таблицы Excel в принципе хавает. Проверял на 2010. Более старшей версии нет под рукой.

Подумалось, что в FPD можно в принципе сформировать xls второй версии. Но ежели просто скопировать, то Excel показывает кракозябры. Если же сделать преобразование символьных полей в таблицу 1251 и потом скопировать в формат xls, то всё равно открываются кракозябры. Нипанятна, какую кодовую таблицу надо подсунуть экселю, чтобы он прочитал таблицу корректно.

И вааще, может быть эксели всех версий могут открывать dbf-таблицы (в кодовой таблице 866) для чтения? Кто-нибудь проверял?



Исправлено 1 раз(а). Последнее : Simple777, 24.04.22 17:20
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Тута пишут, что все версии, вплоть до 2021, могут открывать dbf-файлы

Цитата:
DBF 3, DBF 4 .DBF dBase III и IV.

Файлы этого формата можно открывать в Microsoft Excel, но сохранять файлы Microsoft Excel в формате dBase нельзя.

support.microsoft.com

[sm128]



Исправлено 2 раз(а). Последнее : Simple777, 24.04.22 17:26
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Вот интересно. Когда клиент поставит задачу, которую на фпд не решить в принципе (даже с помощью МАКРОСОВ),
тов.Симпле
1. Будет осваивать новые инструменты
2. Докажет клиенту, что ему (клиенту) эта задача совсем не нужна
3. Распрощается с таким клиентом
4. Что-то иное
?
Ratings: 0 negative/1 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Встречный вопрос.

Когда клиент (к примеру, CIA) поставит задачу, которую medstrax не сможет решить в принципе, то medstrax

1. Будет осваивать новые инструменты
2. Докажет клиенту, что ему (клиенту) эта задача совсем не нужна
3. Распрощается с таким клиентом
4. Что-то иное
?
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
медстрах скажет, что он не может ее решить, хотя конечно попытается.
А ответ тов.Симпле хотелось бы услышать все же. Не надо прятаться за встречные вопросы.
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
... скажет, что он не может ее решить, хотя конечно попытается.
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Но новые инструменты не будет изучать в любом случае?
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Тащемта medstrax должен быть в курсе, что существует специализация даже у домушников и медвежатников, и "заходы на чужую территорию" не приветствуются. \m/ [sm128]
Ratings: 0 negative/0 positive
Re: Работа с макросами Excel
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Тут же просто бизнес, к чему прятаться за ненужными аналогиями.
Либо ты можешь выполнить задачу клиента, пусть с помощью тех инструментов, которыми пока не владеешь - либо эти деньги заработает кто-то другой.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2024 Fox Club 
Яндекс.Метрика