Показать сообщение отдельно
Старый 25.01.2013, 16:40   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
На самом деле непонятно откуда Excel берёт информацию о типе ячейки, потому что отображает он её корректно в текстовом виде, а хранит получается что как число
Там все хитро, но суть в том, что строковые значения хранятся в отдельной от ячеек области - Shared Strings. В самих же ячейках, при этом, сохраняется ссылка на значение в этой области (по факту - индекс в массиве строк)

Нестроковые значения хранятся непосредственно в ячейках и их тип определяется самими данными.

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

Если тип ячейки текстовый или указан перед данными апостроф, то вносимое значение всегда будет сохраняться в разделяемой области.

PS
Для получения текстового значения ячейки независимо от типа хранимых в ней данных можно пользоваться функцией Text() вместо Value() или Value2()
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Logger (10).