|
|
|||||||||||||||||||||||||||||
|
Автоматическая проверка орфографии в EXCELИсточник: habrahabr
Буквально на днях, ко мне и моим коллегам обратились "опытные пользователи" Excel. По специфике работы "опытные пользователи" часто используют офисный пакет для оформления документации. Как ни странно, таблицы Excel так же часто встречаются. Как и на Хабре, не допустимо выпускать документы с орфографическими ошибками. Стандартной возможности excel, по подсветке орфографических ошибок нет. В связи с этим я разработал Add-ins для Excel который бы реализовывал такой функционал. Проверить наличие ошибок не так и сложно, есть стандартный SpellCheck, которым я и воспользовался. Реализовывать предполагается 2 части: 1) проверка уже заполненных ячеек Сама логики работы простая, В первом случае проверяем все ячейки, если есть ошибка, выделяем лексемы и проверяем каждую лексему отдельно, для ошибочных лексем, создаем примечание и выделяем ошибочную лексему красным цветом. Во втором случае просто подписываемся на событие изменения ячейки и делаем все как в 1 случае только с меньшим диапазоном. Приступим: Запускаем VisualStudio, создаем расширение для Excel 2007. При регистрации плагина, подпишемся на событие Cell-Changed и вызовем нашу функцию (функция будет описана чуть позже). Больше при регистрации ничего делать не будем. Проверку всей книги оставим пользователю по вызову. Создадим новую вкладку, первую не трогаем, т.к. она зарезервирована. Так же, добавим 2 кнопки проверки: проверка всей книги, и проверку текущего листа. Пропишем в событиях кнопок следующий код Для всей книги private void OrfoCheckAll_Click(object sender, RibbonControlEventArgs e) Для листа private void OrfoCheckCurrentSheet_Click(object sender, RibbonControlEventArgs e) Ну и самое главное, создадим статичный класс SpellCheck в котором и опишем нашу функцию проверки public static class SpellCheck c.Caption = c.Caption + " " + tmp; } После компиляции и загрузки плагина проверяем работу Это всё чего не хватало Excel для автоматической проверки.
Как всегда, если у вас есть более интересные методы реализации, делитесь опытом Ссылки по теме
|
|