|  23.06.2005, 10:52 | #1 | 
| Участник | 
			
			Пожалуйста,подскажите,как из exel'я перенести данныев аксапту. Какие есть подходы. как вообще работать с exele'м, какие классы... большое спасибо
		 | 
|  | 
|  23.06.2005, 13:34 | #2 | 
| Участник | 
			
			1. Excel --> *.csv  2. Дальше все просто. | 
|  | 
|  23.06.2005, 13:40 | #3 | 
| Участник | 
			
			сначала готовите шаблон Главное меню \ Администрирование \ Периодические операции \ Экспорт/Импорт данных \ Мастер шаблонов Excel далее заполняете этот шаблон данными далее импортируете, создав группу определения с типом Excel Но лучше воспользоваться преобразованием в тестовый файл http://axapta.mazzy.ru/lib/import/ | 
|  | 
|  23.06.2005, 13:53 | #4 | 
| Участник | 
			
			спасибо большое, но как программно записать и считать данные из exel'я ???
		 | 
|  | 
|  23.06.2005, 14:03 | #5 | 
| Участник | 
			
			через ole см. семейство классов SysExcel, например | 
|  | 
|  23.06.2005, 15:35 | #6 | 
| Участник | 
			
			Вот кусок кода построчного чтения  из файла Excel: <div class='XPPtop'>X++</div><div class='XPP'> Filename _filename; SysExcelApplication sysExcelApplication; SysExcelWorksheets sysExcelWorksheets; SysExcelWorksheet sysExcelWorksheet; SysExcelworkbooks sysExcelWorkbooks; sysExcelApplication = SysExcelApplication::construct(); sysExcelApplication.workbooks().open([color=:red]"C:\\_\\76.xls"[/color],0,[color=:blue]true[/color]); sysExcelWorksheets = sysExcelApplication.workbooks().item(1).worksheets(); sysExcelWorksheet = sysExcelWorksheets.itemFromName([color=:red]"Лист1"[/color]); [color=:blue]while[/color] (1) { tmpStr = strltrim(strrtrim(sysExcelWorksheet.cells().item(i,1).value().bStr())); [color=:blue]if[/color] (tmpStr [color=:blue]==[/color] [color=:red]''[/color]) [color=:blue]break[/color]; ........ i++; }</div> Думаю дальше разберешься сам. | 
|  | 
|  23.06.2005, 16:43 | #7 | 
| Участник | 
			
			а как можно определить тип поля в exele'вском файле??? просто когда получаю объект COMVariant, то нельзя получить "нормальное" значение,если приводить к toString(). comVariant = SysExcelWorksheet.cells().item(row, col).value().toString() получится "<значение> VT_R8" или "<значение> VT_BSTR" а мне нужно просто <знчение>, подскажите что-нибудь | 
|  | 
|  24.06.2005, 07:13 | #8 | 
| Участник | 
			
			<div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]str[/color] val; comVariant = SysExcelWorksheet.cells().item(row, col).value(); val = comVariant.bStr();</div> В переменной val будет содержатся значение ячейки типа строка. | 
|  | 
|  24.06.2005, 08:48 | #9 | 
| Участник | 
			
			да,но почему-то если в ячейке только цифры,то bStr() ничего не вернет
		 | 
|  | 
|  24.06.2005, 11:41 | #10 | 
| Участник | 
			
			значит тип не строка, а числовой, пользуйся функциями float(), double() вместо bStr()
		 | 
|  | 
|  24.06.2005, 13:17 | #11 | 
| Участник | 
			
			так в том то и трудность((( как узнать тип поля из кода? пытался typeof,typeid....подскажите,может что придумаете)
		 | 
|  | 
|  24.06.2005, 13:50 | #12 | 
| Участник | 
			
			смотри в справке аксапты по COMVariant.variantType - думаю достаточно подробно описано
		 | 
|  |