|  10.06.2009, 11:04 | #1 | 
| Участник | Проблема некорректного вывода данных в EXCEL 
			
			Добрый день.  Есть форма с ActiveX, в которую встроен Excel. Но проблема не в этом (скорее всего). Проблема возникает, когда я вывожу в ячейку текстовое значение, вроде "01.001". В Excel'е она превращается в строку "1.001" (если ячейка имеет текстовый формат). Делаю я это через X++: comRange.value2("01.001");Единстенный вариант решения пока - это выводить текстовые данные с " \' " в начале, что сильно не хочется. Последний раз редактировалось Dark Light; 10.06.2009 в 11:26. | 
|  | 
|  10.06.2009, 12:23 | #2 | 
| Moderator | 
			
			Эта штука называется OWC.Spreadsheet. Она ПОХОЖА на Excel, но всё же отличается от него: как в худшую (по большей части), так и в лучшую (бывает и такое!) стороны. Цитата: Немного успокою Вас и уберегу от дальнейшего безуспешного копания на эту тему: в Spreadsheet, как и в Excel, есть метод CopyFromRecordset(), который выводит на лист заранее приготовленный ADODB.Recordset. Так вот для строковых значений типа "01.001" этот метод в Spreadsheet'е автоматически добавляет начальный апостроф (в "большом" Excel'е такого не происходит). | 
|  | |
| За это сообщение автора поблагодарили: Logger (4). | |
|  30.06.2009, 09:10 | #3 | 
| Участник | 
			
			К сожалению, проблема экспорта в XL сохраняется, например, если у нас выгружается столбец сумм, где некоторые значения, например 30.05, могут превратиться в дату (30 мая). Для файлов .XLS проблема решается возведением выражения в кавычки: X++: strfmt("'%1'", SomeTable.SomeValue) | 
|  | 
|  30.06.2009, 09:22 | #4 | 
| Участник | Цитата: 
		
			Сообщение от dech
			   К сожалению, проблема экспорта в XL сохраняется, например, если у нас выгружается столбец сумм, где некоторые значения, например 30.05, могут превратиться в дату (30 мая). Для файлов .XLS проблема решается возведением выражения в кавычки: X++: strfmt("'%1'", SomeTable.SomeValue) | 
|  | 
|  30.06.2009, 14:43 | #5 | 
| Участник | 
			
			Необходимо сначала установить нужный формат ячейки Excel (range.NumberFormat()), а потом вставлять данные в эту ячейку. Если же вы не форматируете ячейки Excel, т.е. оставляете ее в формате "Общий", то Excel оставляет за собой право попытаться самостоятельно определить формат полученных данных и выполнить конвертация в соответствии с настройками отображения. Что он, собственно, и делает. | 
|  | 
| Теги | 
| excel, spreadsheet | 
|  | 
| 
 |