Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
5 / 6 / 0
Регистрация: 08.06.2017
Сообщений: 32
1
.NET 4.x

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

12.09.2017, 09:34. Показов 3240. Ответов 2

Author24 — интернет-сервис помощи студентам
Суть: пишется надстройка для Excel с некоторым пользовательским функционалом.
Есть задача программно записать формулу расчета в определенный набор ячеек листа. Расчет ведется с применением именованных диапазонов с того же листа. Например, есть столбец данных, поименованный как "_Имя_", требуется рядом с ним образовать столбец (объект Range), у которого формула будет _Имя_*2. Сама формула, образованная по всем правилам Excel, берется из другого места, например, из текстового файла.
Соответственно, все сводится вкратце к следующему коду:
C#
1
2
3
string fomula = ... //код получения строки формулы
Range MyRange = SheetName.Range[...]; //в фигурных скобках указания о размере ренджа
MyRange.Formula = formula;
Проблема: Работает только тогда, когда в строке формулы не встречаются имена функций Excel, написанные по-русски. Например, если формула "=_Имя_*2" или "=SIN(_Имя_)", то все отлично работает, а если "=КОРЕНЬ(_Имя_)", то не работает, во всех ячейках диапазона появляется ошибка "ИМЯ". И следующий прикол: если кликнуть по строке формулы для ечейки с такой ошибкой, то все пересчитается и будет нормально показываться результат.

Пробовал программно включать и выключать автоматическое вычисление формул, принудительно пересчитывать все формулы книги, листов, всего экселя. Не помогает. Пока не кликнешь - не посчитает формулу с русскими функциями. Думается, что проблема как-то связана с кодировкой, в которой передается русский текст в строку формул, но не знаю, куда в этом плане копать и как фиксить. Прошу совета.
Версия Office: 2013.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2017, 09:34
Ответы с готовыми решениями:

Надстройка Excel - запустить файл с параметром, записанном в ячейке
Здравствуйте. Помогите пожалуйста, пишу небольшую надстройку (заставили на работе) :( Смысл в...

Надстройка для user32.dll
Всем доброго времени суток. Меня тут ВНЕЗАПНО осенила идея, что пользоватьсы функциями из...

Работа с датами Excel VSTO
Суть. Например есть диапозон ячеек с датами A1:A10, мне нужно просканировать каждую ячейку, и если...

Создать панель сбоку (VSTO, EXCEL)
Когда-то (очень давно) я такое сделал. Сейчас - тупо забыл. Прошу - дайте направление или...

2
6269 / 2507 / 739
Регистрация: 11.04.2015
Сообщений: 4,044
Записей в блоге: 43
12.09.2017, 12:33 2
https://msdn.microsoft.com/en-... erty-excel
1
5 / 6 / 0
Регистрация: 08.06.2017
Сообщений: 32
12.09.2017, 14:17  [ТС] 3
diadiavova, черт, как же просто... Огромное спасибо!
0
12.09.2017, 14:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2017, 14:17
Помогаю со студенческими работами здесь

VSTO для Access
Смотрел на днях курс от AppDev. Там разбирали как допиливать с помощью VSTO и C# шаблонов...

Надстройка VSTO для Excel
Умею делать кнопки и т.п. для Excel. Но ни как не получается сделать свою формулу с помощью...

Надстройка VSTO для Office 2010
Добрый день! Решил сделать надстройку для Word'a, сначала попробывал сделать на чистом VBA так же...

VSTO для Excel 2010
Здравствуйте, коллеги. Подскажите, пожалуйста, что не так с моим кодом. Пытаюсь вызвать родной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru