Надстройка для MS Excel

Уважаемые пикабушники, хочу представить Вам надстройку для MS Excel, которую я развиваю в свободное время как пет-проект.

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

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


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

Ниже приведу краткое описание некоторых функций.

Конвертация чисел, форматированных как текст


Многие сталкиваются с проблемой при работе с выгрузкой из внешней системы: числа в ячейках отформатированы как текст, отчего не работают формулы, и невозможно даже вычислить сумму. Изобретено много обходных путей для решения этой проблемы (например, использование функции "текст по столбцам"), но все они сопряжены с дополнительными сложностями или выполнением лишних действий.


Ниже пример преобразования чисел при помощи надстройки. Столбец B для примера заполнен формулой "=A2+1", которая демонстрирует, является ли значение слева числом:

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

Переключение регистра текста


В MS Word есть удобная функция, доступная по Shift+F3, которая переключает регистр выделенного текста (в последовательности "Sentence case" -> "lowercase" -> "UPPERCASE"). Иногда такой функции не хватает и в Excel, но надстройка восполняет этот пробел:

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

Очистка текста от пробельных символов


Позволяет очистить текст от пробелов в начале и конце значения, а также от повторяющихся пробелов и переносов строки в середине текста:

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

Интерактивный поиск ячеек, в которых произошла ошибка вычисления


Показывает список всех ячеек с ошибкой (например, "#Н/Д"), и позволяет быстро перемещаться к выбранной ячейке:

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

И другие функции:


- Подсветка дублей (разными цветами группы одинаковых значений)

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

- Снятие пароля с защищённой книги и листов

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

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


Также есть функции по работе с XML, не относящиеся напрямую к Excel, но в которых иногда возникает потребность, а инструмента, который бы свободно распространялся и вызывал доверие, у меня сходу найти не получилось:


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

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


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


Для автоматической сборки установочных файлов настроена сборка в Azure.

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

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

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


Для установки надстройки нужно запустить файл .vsto. Разумеется, установка возможно только при наличии установленного MS Excel =)


Если всё сделано правильно, то Вы увидите новую вкладку при следующем запуске Excel:

Надстройка для MS Excel Microsoft Excel, Надстройка, Полезное, Длиннопост

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

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

Еще раз ссылка на проект (там же инструкции по использованию и установке):

https://github.com/navferty/NavfertyExcelAddIn

MS, Libreoffice & Google docs

719 постов15K подписчиков

Добавить пост

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

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

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

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

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

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


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

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

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий
Как интересно рейдеры маскироваться начали. Эксель это то дерьмо которое под видом макроса позволяет трояна на комп засадить. Верно?
раскрыть ветку (6)
3
Автор поста оценил этот комментарий

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


Проект, о котором идёт речь - с открытым исходным кодом. Любой может ознакомиться с ним, и даже скачать и скомпилировать у себя на компьютере - для этого потребуется Visual Studio и установленный пакет MS Office. Также я специально настроил автоматизированный процесс сборки на Azure, в ходе которого исходники для компиляции скачиваются напрямую из репозитория. Впрочем, ничто не мешает скомпилировать проект у себя, и пользоваться только им. Ну или если у Вас остались сомнения, не пользоваться вовсе - конечно же скачивать из интернета и запускать программу, которой сам не доверяешь - плохая идея =)

раскрыть ветку (5)
1
Автор поста оценил этот комментарий
Я как-нибудь сам. Вон в РЖД по сей день начальник моим маркросом по учету спецодежды пользуется😁
Автор поста оценил этот комментарий

Есть ли ограничения для Си шарпа в работе с офисом, по сравнению с нативным ВБА?

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

С точки зрения пользователя, наиболее существенным ограничением на мой взгляд является невозможность создания User-defined Functions (UDF) средствами VSTO - это можно сделать только с помощью VBA. UDF - это функция, которая объявляется в VBA коде, и может быть вызвана в формуле в ячейке листа: "=MyCustomFunction(42)". VSTO также немного проигрывает по скорости работы с объектной моделью приложения MS Office за счёт дополнительного слоя взаимодействия (Primary Interop Assemblies), в то время как VBA исполняется в том же процессе Excel.exe. Впрочем, есть способы минимизировать этот фактор, правильно обращаясь к объектам на листе. В остальном отличия не очень существенны.

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

Даже не представляю себе, нужна ли эта UDF для простых расчетов

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

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

Еще один вариант - реализовать функцию с циклами или условными переходами, которые на чистых формулах сделать невозможно или очень сложно/громоздко.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку