Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.86.138] |
|
Сообщ.
#1
,
|
|
|
Коллеги, через какое свойство можно вынуть неформатированные данные.
Например ячейка имеет тип "денежный" и имеет значение 10 000,00 р , при щелчке на нее эксель показывает только 10000. Так вот, как мне получить только 10000? По Excel.Cells(сч, 10).Text получаю 10 000,00 р |
Сообщ.
#2
,
|
|
|
Range.Value
|
Сообщ.
#3
,
|
|
|
Цитата ^D^ima @ По Excel.Cells(сч, 10).Text получаю 10 000,00 р Представление или значение? |
Сообщ.
#4
,
|
|
|
Цитата leo @ Range.Value да, вернулось число такого вида: Цитата 3 470 Только что за символ после цифры 3? Он имеет код 160... Когда я в экселе щелкаю на ячейку, в строке формул 3470 без всяких спецсимволов. Как-бы программно без этого символа вернуть? Цитата Bas @ Представление или значение? Я не понимаю Сам код такой: Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); Excel.Sheets(1).Select(); ЭксельСуммаНал = Excel.Cells(сч, 9).Value; Это 1С, но разницы для работы с COM нет. Добавлено Решение в лоб - удалять эти символы в строке после получения данных, но возможно есть и другое решение |
Сообщ.
#5
,
|
|
|
Цитата ^D^ima @ Только что за символ после цифры 3? Он имеет код 160... Какой еще символ? У тебя ЭксельСуммаНал какой тип имеет? Попробуй использовать числовой тип (вещественный или целый), а затем уже сам преобразуешь его в строку, как нужно Добавлено Еще можно попробовать с Range.Value2, которое (судя по описанию) преобразует денежный формат и время к типу double. |
Сообщ.
#6
,
|
|
|
Цитата leo @ Какой еще символ? Это символ неразрывного пробела оказывается http://excel2.ru/articles/preobrazovanie-t...obel-v-ms-excel https://www.google.ru/search?ei=fQdXWs71Ns-.....0.bD4YWXq_jPo Добавлено Цитата leo @ Range.Value2 то-же самое Цитата leo @ У тебя ЭксельСуммаНал какой тип имеет? в 1С не задается, подставляется сам |
Сообщ.
#7
,
|
|
|
Поясни, что тебе нужно - просто получить строку в нужном тебе формате, или же как-то дальше использовать полученные значения для вычислений?
Дело в том, что Value возвращает Variant с типом данных Currency. Если ты используешь преобразование в строку по умолчанию, то 1C вставляет свой разделитель тысяч (символ 160). Поэтому для преобразования в строку без разделителя нужно либо использовать какое-то специальное форматирование, либо присвоить значение Variant переменной числового типа (double) и уже ее преобразовать в строку (если 1С и тут не влепит разделитель). Для вычислений же можно использовать непосредственно тип Variant или Currency, т.к. 1С наверняка должна поддерживать эти операции. Добавлено Цитата ^D^ima @ в 1С не задается, подставляется сам Вон оно что... В таком случае должен подставляться числовой тип. И соотв-но, проблема тут ни в экселе, а в преобразовании числа в строку в 1С. Если в ней нет функций задания формата преобразования, то остается только анализировать строку и удалять пробелы ручками (или забить на это дело) |
Сообщ.
#8
,
|
|
|
leo
Спасибо за развернутый ответ. |