| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Мне нужно загрузить шаблон экселевского файла, далее в него писать данные, используя OWC... 
		
		
		
		
		
		
		
	На форуме откопал что это можно зделать с помощью XMLURL("str _filename") но Ахарта в упор его не видит, и ругается сообщением что у СОМ обьекта нет такого метода...(( Код:  Excel   =  new COM("OWC.Spreadsheet");
 Excel.XMLURL("C:\test.XLS");Есть догада что дело в версии MSOWC.DLL если это так, следующий вопрос как подконектить новую dll?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Код: Excel.XMLURL("C:\\test.XLS"); | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Было бы все так просто ))) 
		
		
		
		
		
		
		
	Код просто от руки набивал слэш забыл.... Тем более она бы не ругалась что такого обьекта нет, вероятнее всего выдала бы неизвестную ошибку..... Я уже все перекопал....MSDN на спридшит наизусть выучил )) HELP!  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			По-моему, работа с XML появилась начиная с OfficeXP (owc10.dll).  
		
		
		
		
		
		
			Не совсем понятно, что вы с помощью этого метода хотите сделать - шабон должент быть в формате Excel XML Так же не понятно зачем вы вообще используете Spreadsheet? У вас не установлен Excel? 
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Цитата: 
	
Имеено он у меня и стоит.....там же откопал хелп по OWC, в методах спридшита описан XMLURL, но все попытки вызвать его из аксапты провалились...  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Попробуйте тогда  
		
		
		
		
		
		
			<div class='XPPtop'>X++</div><div class='XPP'> Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);</div> А вообще, чтобы проверить, создайте форму, на ней контрол ActiveX (Microsoft Excel Spreadsheet 10.0) и проверьте у него наличие этого метода 
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Не вышло... ((  | 
| 
	
 | 
| 
			
			 | 
		#8 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Ну вот....дело сдвинулось....через конфигурацию зарегистрировал Owc10.DLL  
		
		
		
		
		
		
		
	теперь отрабатывается <div class='XPPtop'>X++</div><div class='XPP'>Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]);</div> Но на методе выпадает в ошибку: Функция 'XMLURL возвратила код ошибки E0040104 (0x<unknown>), что означает: <unknown> <div class='XPPtop'>X++</div><div class='XPP'>Excel.XMLURL([color=:red]"C:\\test.xls"[/color]);</div> Ща буду добивать ))  | 
| 
	
 | 
| 
			
			 | 
		#9 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			regsvr32 owc10.dll
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#10 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Странно. По-видимому у вас не зарегистрировался компонент от OfficeXP.  
		
		
		
		
		
		
			Проверьте - в реестре у вас должен быть ключи HKEY_CLASSES_ROOT\OWC10.Spreadsheet и HKEY_CLASSES_ROOT\OWC10.Spreadsheet.10 Если их нет, то зарегистрируйте вручную - запустите из папки "Program Files\Common Files\Microsoft Shared\Web Components\10\" regsvr32 owc10.dll Excel.XMLURL("C:\\test.xls"); Я же написал - надо открывать XML документ. Сохраните test.xls из Excel в формате таблицы XML и открывайте его 
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#11 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Теперь прога идет до первого range.value() и там выпадает (( Функция 'value возвратила код ошибки 80020005 (0xDISP_E_TYPEMISMATCH), что означает: Один или большее количество аргументов не мог быть преобразовано. <div class='XPPtop'>X++</div><div class='XPP'> Excel = [color=:blue]new[/color] COM([color=:red]"OWC10.Spreadsheet"[/color]); cursheet = excel.Activesheet(); range = curSheet.range([color=:red]'A1'[/color]); range.value([color=:red]'xxxxxxx'[/color]);</div> *БЬЮСЬ ГОЛОВОЙ ОБ КЛАВУ*  | 
| 
	
 | 
| 
			
			 | 
		#12 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Если хотите использовать именно Value(), то надо использвать так 
		
		
		
		
		
		
			<div class='XPPtop'>X++</div><div class='XPP'> #define.xlRangeValueDefault(0x0000000A) ... range.value(#xlRangeValueDefault, [color=:red]'xxxxxxx'[/color]);</div> либо используйте value2() <div class='XPPtop'>X++</div><div class='XPP'> range.value2([color=:red]'xxxxxxx'[/color]);</div> 
				__________________ 
		
		
		
		
	Axapta v.3.0 sp5 kr2  | 
| 
	
 | 
| 
			
			 | 
		#13 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Все! Сегодня добил  
		
		
		
		
		
		
		
	  Большое спасибо AndyD, без вас не справился бы.....:РЕСПЕКТ:  | 
| 
	
 |