211

Надстройка для MS Excel (часть 2)

Всем привет!

В прошлом посте я представил на суд общественности свой open-source проект - надстройку для MS Excel, с набором полезных функций. Пост был встречен очень тепло, многие пикабушники оставили пожелания о добавлении новых функций, а несколько человек написали мне с предложениями подключиться к разработке. Спасибо @1041618 за редизайн - мы обзавелись новыми иконками в едином стиле и поддержкой серой и тёмной тем, а также учитываем в локализации язык пакета MS Office.

Исходный код проекта и инструкции по установке и использованию опубликованы на GitHub под лицензией MIT (неограниченное право на использование, копирование, изменение).


В этом посте я хотел бы продолжить описание функций надстройки, уверен - многим они покажутся весьма полезными.

Транслитерация кириллицы в латинские буквы


Конвертирует содержимое текстовых ячеек, содержащих символы кириллицы, в латинские символы (по стандарту ICAO doc 9303), за идею спасибо @negotivko

Подсветка дублей


Раскрашивает разными цветами группы одинаковых значений:

«Размерживание» объединенных ячеек с их заполнением


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

Экспорт таблицы в markdown


Markdown - это удобный язык разметки, используемый при форматировании текстов во многих системах: wiki (Confluence), GitHub, Gitlab, Reddit, Stack Exchange, OpenStreetMap и множество других. Функция копирования таблицы в markdown помещает в буфер обмена отформатированную таблицу с заголовками, и Вы легко можете вставить ее в свой документ:

Проверка значений в выделенных ячейках (числа, даты, ИНН ЮЛ/ФЛ и т.д.)


Можно проверить, например, список ИНН организаций на корректность (по контрольным цифрам в номере):

Кроме того, есть две функции по работе с XML-файлами. Они не относятся напрямую к функциональности Excel, но иногда в них возникает потребность:

Сформировать пример XML файла на основе XSD-схемы


Если у вас есть файл XSD, который содержит xml-схему, Вы можете сформировать образец XML-файла на основе этой схемы:

К сожалению, сформировать документ, который бы полностью соответствовал всем описанным правилам, невозможно - некоторые ограничения определяются паттернами (например, регулярными выражениями). Тем не менее, это поможет получить наглядное представление о структуре XML-документа.


Проверить XML по XSD-схеме


Позволяет проверить имеющийся XML-документ на соответствие схеме, описанной в XSD-файле. Выберите оба файла, и при наличии ошибок все они будут выведены на лист Excel.

Установка надстройки


Для установки надстройки выберите последнюю по времени успешную сборку пайплайна NavfertyExcelAddIn - Publish и скачайте опубликованные файлы:

Важный момент: при установке надстройки Excel "запоминает" путь к папке, из которой она была установлена, и в будущем установка обновлений будет возможна только из этой папки, в противном случае нужно будет воспользоваться "установкой и удалением программ" через Панель управления Windows. В настоящее время исследуется вопрос о публикации установочных файлов в сети для облегчения процесса установки и доставки обновлений.


Для установки надстройки нужно запустить файл .vsto


Хотел бы предупредить об одном ограничении: при вызове функций надстройки (как COM-надстроек, так и VBA) в MS Excel очищается стек последних действий пользователя для отмены (Undo). Я работаю над тем, чтобы обойти это ограничение хотя бы для возможности отмены выполнения самой функции, но пока что будьте внимательны при запуске функций - отменить действие можно будет, только закрыв книгу без сохранения.


Более подробная инструкция по установке, а также инструкции по использованию и исходный код - на странице проекта в гитхабе:

https://github.com/navferty/NavfertyExcelAddIn


Спасибо всем, кто предлагал идеи по улучшению проекта в комментариях к прошлому посту. Если у Вас есть новые идеи - оставляйте комментарии!


Если Вы .NET-разработчик и хотите присоединиться к работе над проектом, пишите мне на почту (указана в профиле гитхаба), заводите issue и пулл-реквесты.

Если Вы только изучаете платформу .NET, и хотите поучаствовать - не стесняйтесь! Читайте исходный код, задавайте вопросы, если что-то непонятно - буду рад объяснить и поделиться знаниями =)

MS, Libreoffice & Google docs

762 поста14.9K подписчиков

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

5
Автор поста оценил этот комментарий

Вы большой молодец! Здорово то, что вы делитесь своими наработками и продвигаете знания Excel в массы))

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Спасибо! Буду стараться)) Активные отзывы, запросы новых функций, багрепорты - эти вещи очень важны для мотивации продолжать работу над проектом

0
Автор поста оценил этот комментарий

Я бы с радостью, но те полтора макроса, что я видел, у меня не заработали.


Вообще удивлён, что такая вроде простая и востребованная функция не имеет простого и решения. То, что я видел - это какая-то дичь или с парсингом html (который меняется и всё рушится), или json запросами и парсингом ответов, в общем - жуть.


Неужели никому кроме меня не нужен текущий курс валют в таблицах?)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Мне не спится, вот набросал на скорую руку. При открытии книги обновляет курс:

https://github.com/navferty/CBR-VBA-Currencies


Там наивная реализация, запрашивает курс не только при открытии книги, но и при изменениях на листе. Поэтому если будет много изменений, и много ячеек с такой формулой, можете заддосить сайт ЦБ))

Так что можно еще доработать напильником, в зависимости от потребностей

показать ответы
0
Автор поста оценил этот комментарий
Хотел поинтересоваться в формате xlam не выпускали? А так же на каком яп написана надстройка? Возможно чем-то могу быть полезен в улучшении )
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Написано на языке C# (в посте есть ссылка на гитхаб, там весь код проекта опубликован). Если есть желание поучаствовать в разработке, можем списаться, найдите меня в телеге: navferty

1
Автор поста оценил этот комментарий

добрый вечер, установил надстройку "20200603.19 Azure pipelines: upload installation files to website (#54)". При подсвечивании дубликатов выдает ошибку "произошла ошибка ссылка на объект не указывает"

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо! Баг завёл
https://github.com/navferty/NavfertyExcelAddIn/issues/58
Следите за новостями!)

показать ответы
3
Автор поста оценил этот комментарий

Да есть, но она в некоторых задачах бестолковая.

К примеру у меня есть группы товаров с разными характеристиками и  артикулами.  И наименование. Наименование более уникально так как в нем описывается цвет товара а в артикуле - нет.

Раньше я пользовался удалением дубликатов по наименованию и после подсветку дублей, переписывал артикула для правки (чтобы были тоже уникальные). И короче.. геморрой.

Вчера наткнулся на пост @navferty и премного ему благодарен. тыкнул в отсортированном списке подсветить дубли и в наименованиях и артикулах - увидел несовпадающие группы и на месте откорректировал. Сэкономил полчаса-час точно за заход :) И глаза не болят.


БЛАГОДАРЮ!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо за Ваш отзыв! Такие комментарии очень сильно мотивируют продолжать работу над проектом)

показать ответы
1
Автор поста оценил этот комментарий

Здравствуйте. Проект живой?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Здравствуйте. Последнее время я ничего не обновлял, но он рабочий. Если у Вас будут замечания/пожелания по доработкам, можете заводить issue на гитхабе или писать прямо тут. Да и в целом буду рад отзывам =)

показать ответы
0
Автор поста оценил этот комментарий

Да, теперь через setup устанавливается)

А может знаете в чем причина, у меня на одном ПК она ставится и включается настройка без проблем.

А вот на другом ПК:

1. я установил ее, все ок

2. Надстройка неактивна (вкладки нет)

3. в параметры захожу, ставлю галку - включаю надстройку, жму ОК и закрываю окно

4. вкладка не появляется, в меню надстройки опять плагин неактивный :D

Понимаю что проблема в Office/ настройки ПК где-то, но куда копать не знаю что-то )

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сообщите пожалуйста, получилось ли установить? У меня самого не так много устройств для тестирования возможности установки, были бы очень полезны отзывы пользователей

показать ответы
0
Автор поста оценил этот комментарий

Что-то не устанавливается теперь уже даже

:(

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Попробуйте пожалуйста сейчас - обновил сертификат на сайте. Если не трудно, сообщите о результате - получится ли установить

показать ответы
0
Автор поста оценил этот комментарий

Что-то не устанавливается теперь уже даже

:(

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Там истек сертификат, постараюсь в ближайшее время обновить

0
Автор поста оценил этот комментарий
Спасибо большое!)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вам спасибо, что сообщили об ошибке!)

Подскажите, есть ли у Вас идеи, что можно добавить или улучшить в надстройке?

1
Автор поста оценил этот комментарий
Спасибо)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В следующей сборке будет исправленная версия.


Обожаю, когда баг можно пофиксить одним символом =)

Иллюстрация к комментарию
показать ответы
0
Автор поста оценил этот комментарий

Серым - сделал выделением и 1 нажатием.


То что желтым, попробуйте столбиков наделать, я даже продолжать не стал)))

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

https://github.com/navferty/NavfertyExcelAddIn/issues/55

Завёл тикет, следите за новостями =)

показать ответы
0
Автор поста оценил этот комментарий

Серым - сделал выделением и 1 нажатием.


То что желтым, попробуйте столбиков наделать, я даже продолжать не стал)))

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Понял Вас. Действительно, выглядит проблемой, которую можно попробовать решить в надстройке

показать ответы
2
Автор поста оценил этот комментарий

Знаю, поэтому и написал)

Жаль я первый пост не видел))) сэкономил бы уже часов 10-15 своей жизни 😆

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Как пользователь Excel, расскажите - может быть у Вас есть идеи о том, что еще можно было бы реализовать в надстройке? Регулярная боль с рутинными действиями, которые можно было бы автоматизировать - с пользой для Вас и многих других пользователей?

показать ответы
0
Автор поста оценил этот комментарий

Я бы с радостью, но те полтора макроса, что я видел, у меня не заработали.


Вообще удивлён, что такая вроде простая и востребованная функция не имеет простого и решения. То, что я видел - это какая-то дичь или с парсингом html (который меняется и всё рушится), или json запросами и парсингом ответов, в общем - жуть.


Неужели никому кроме меня не нужен текущий курс валют в таблицах?)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Странно, там у них нормальное API. Если будет время, отпишу тут на выходных с примером VBA, а также заведу тикет в проекте, чтобы добавить эту функцию туда

0
Автор поста оценил этот комментарий
Результат не совпадает с желаемым. Не совпадает настолько, что даже не понимаю что именно сделано не так
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Пока непонятно, что же всё-таки не так) Не хочется повторять ту функциональность, которая уже есть в Excel, просто переупаковав и немного изменив логику. Заметил, кстати, что многие платные надстройки этим страдают - пользуясь тем, что многие люди просто не знают о наличии нужных им функций, и ищут эти функции в сторонних решениях

0
DELETED
Автор поста оценил этот комментарий
Подсветка дублей. Так вроде есть такое в экселе. Часто пользуюсь.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Среди реализованных функций есть подсветка дублей, она описана в этой статье. Или Вы имеете в виду нечто иное?

UPD кажется я не так понял Ваш вопрос. Если Вы имеете в виду, что эта же функция уже есть в Excel - в этой надстройке разные группы дублей подсвечиваются разными цветами

0
Автор поста оценил этот комментарий

Да, теперь через setup устанавливается)

А может знаете в чем причина, у меня на одном ПК она ставится и включается настройка без проблем.

А вот на другом ПК:

1. я установил ее, все ок

2. Надстройка неактивна (вкладки нет)

3. в параметры захожу, ставлю галку - включаю надстройку, жму ОК и закрываю окно

4. вкладка не появляется, в меню надстройки опять плагин неактивный :D

Понимаю что проблема в Office/ настройки ПК где-то, но куда копать не знаю что-то )

раскрыть ветку (1)
Автор поста оценил этот комментарий

Могут быть политики настроены, запрещающие надстройки. Попробуйте проверить в Trust Center (см. фото)

Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

Вы знаете, неделю не работал с excel и особо припомнить не могу, буду держать в голове.

Единственное что сразу вспомнилось, когда делал производственные таблицы с кучей объединенных ячеек, меня удручал тот факт что есть стандартная функция объединения ячеек по строкам, а по столбцам (что как раз мне было необходимо) - нет. Спасался через f4 насколько помню.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Странно: вот только что проверил, какой ни выделить диапазон, функция "Merge & Center" объединит ячейки, которые выделены (по строкам, столбцам или прямоугольный диапазон)

Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий
Спасибо за вашу работу. Не могу побороть консолидацию. Это когда спецификацию на Х устройств с одинаковыми артикулами надо суммировать в одну общую, валовую спецификацию.
раскрыть ветку (1)
Автор поста оценил этот комментарий

А в чём именно заключаются сложности?

показать ответы
0
Автор поста оценил этот комментарий

Автообновление — это когда завтра открою эту книгу, то и курс будет завтрашний, а не вчерашний. Можно ещё рядом выводить текущую дату, и на эту дату показывать курс. Надо на другую - указываю другую дату, и курс меняется.


Я читал про парсинг с сайта ЦБ, но там всё как-то сильно не просто и готовые рецепты у меня не заработали.

раскрыть ветку (1)
Автор поста оценил этот комментарий

вот тут предлагают способ форсировать рекалькуляцию UDF-функций, определённых в макросах
https://superuser.com/questions/1261444/custom-formula-not-u...


Public Function MyFunction(Target As Range, Optional VolatileParameter As Variant)

=MyFunction(A2,Now())

0
Автор поста оценил этот комментарий

Интересно, а конвертацию xls в DB Paradox тяжело сделать?

раскрыть ветку (1)
Автор поста оценил этот комментарий

С DB Paradox не работал, но если многие будут заинтересованы в такой функции, можно попробовать. Кому такая функция нужна - поставьте плюсик на комментарий выше

0
Автор поста оценил этот комментарий

Интересное начинание!

Сам много лет пользуюсь бесплатной ASAP.


Для русских букв написал себе макросы и вывел на кнопки - подсветить рус/анг (бывает полезно, когда в большой иностранной номенклатуре скрытые русские буквы и наоборот), заменить рус на англ и наоборот, удалить все русские (удобно, когда номенклатура на англ, но описание рядом в той же ячейке на русском и оно не нужно).


Чего лично мне не хватает - курс доллара на сегодняшнюю дату в ячейку с автообновлением. В сети есть примеры макросов, но они слишком сложные и ни один не заработал стабильно. Приходиться ходить на сайт ЦБ.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Можно добавить загрузку курсов (на прошлой работе даже делал именно загрузку курсов с сайта ЦБ, и именно на VSTO), но насчет автообновления не уверен

показать ответы
0
Пузырятор Pro
Автор поста оценил этот комментарий

а есть что нибудь такое для гуглодоксов?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Эта надстройка только для MS Office (и только на Windows), увы. Под гуглодоки нужно реализовывать такие макросы с нуля

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества