Столкнулся с такой проблемой. Пишу на C++ Builder программу, которая выводит отчет в MS Excel 97, в частности, некоторые ячейки заполняются формулами, содержащими функцию SUM. Незадача в том, что в руссифицированной версии Excel эта функция (да и остальные тоже) называется по-другому — СУММ. Так вот вопрос: как написать программу универсально, чтобы вне зависимости от того, какая версия Excel установлена (я имею в виду, русская или английская), формула выводилась корректно? Кто-то, может быть, скажет, что это невозможно или нужно просто предусмотреть вывод разных названий для разных версий. Но если написать этот же код на Visual Basic и указать, что функция называется "SUM", то такая программа прекрасно выводит в английский Excel "SUM", а в русский — "СУММ".
Здравствуйте DiBa, Вы писали:
DB>Столкнулся с такой проблемой. Пишу на C++ Builder программу, которая выводит отчет в MS Excel 97, в частности, некоторые ячейки заполняются формулами, содержащими функцию SUM. Незадача в том, что в руссифицированной версии Excel эта функция (да и остальные тоже) называется по-другому — СУММ. Так вот вопрос: как написать программу универсально, чтобы вне зависимости от того, какая версия Excel установлена (я имею в виду, русская или английская), формула выводилась корректно? Кто-то, может быть, скажет, что это невозможно или нужно просто предусмотреть вывод разных названий для разных версий. Но если написать этот же код на Visual Basic и указать, что функция называется "SUM", то такая программа прекрасно выводит в английский Excel "SUM", а в русский — "СУММ".
Ты прекрасно можешь писать "SUM" для формул. Это поймет и русский Ёксель, и все остальные.
Здравствуйте retalik, Вы писали:
R>Здравствуйте DiBa, Вы писали:
DB>>Столкнулся с такой проблемой. Пишу на C++ Builder программу, которая выводит отчет в MS Excel 97, в частности, некоторые ячейки заполняются формулами, содержащими функцию SUM. Незадача в том, что в руссифицированной версии Excel эта функция (да и остальные тоже) называется по-другому — СУММ. Так вот вопрос: как написать программу универсально, чтобы вне зависимости от того, какая версия Excel установлена (я имею в виду, русская или английская), формула выводилась корректно? Кто-то, может быть, скажет, что это невозможно или нужно просто предусмотреть вывод разных названий для разных версий. Но если написать этот же код на Visual Basic и указать, что функция называется "SUM", то такая программа прекрасно выводит в английский Excel "SUM", а в русский — "СУММ".
R>Ты прекрасно можешь писать "SUM" для формул. Это поймет и русский Ёксель, и все остальные.
Ты сам-то пробовал? Если в русском Ёкселе написать "SUM" вместо "СУММ", то в результате отобразится загадочная надпись "#ИМЯ?". Как раз вопрос был про то, как заставить Excel изменять стандартное английское имя фукнции на локализованное, потому что при автоматизации из программы на C++ этого не происходит, а вот на Visual Basic почему-то происходит.
Здравствуйте DiBa, Вы писали:
DB>Здравствуйте retalik, Вы писали:
R>>Ты прекрасно можешь писать "SUM" для формул. Это поймет и русский Ёксель, и все остальные.
DB>Ты сам-то пробовал? Если в русском Ёкселе написать "SUM" вместо "СУММ", то в результате отобразится загадочная надпись "#ИМЯ?". Как раз вопрос был про то, как заставить Excel изменять стандартное английское имя фукнции на локализованное, потому что при автоматизации из программы на C++ этого не происходит, а вот на Visual Basic почему-то происходит.
Пробовал, и не раз. У меня подозрение, что ты с Unicode-строками что-то перепутал.
Вот тебе работающая через #import программа ('SUM' ставлю через .Value и символ '=', но можно и через .Formula):