04.04.2006, 14:18 | #1 |
Участник
|
Мне нужно загрузить шаблон экселевского файла, далее в него писать данные, используя OWC...
На форуме откопал что это можно зделать с помощью XMLURL("str _filename") но Ахарта в упор его не видит, и ругается сообщением что у СОМ обьекта нет такого метода...(( Код: Excel = new COM("OWC.Spreadsheet"); Excel.XMLURL("C:\test.XLS"); Есть догада что дело в версии MSOWC.DLL если это так, следующий вопрос как подконектить новую dll? |
|
04.04.2006, 17:09 | #2 |
Участник
|
Код: Excel.XMLURL("C:\\test.XLS"); |
|
04.04.2006, 22:08 | #3 |
Участник
|
Было бы все так просто )))
Код просто от руки набивал слэш забыл.... Тем более она бы не ругалась что такого обьекта нет, вероятнее всего выдала бы неизвестную ошибку..... Я уже все перекопал....MSDN на спридшит наизусть выучил )) HELP! |
|
05.04.2006, 08:52 | #4 |
Участник
|
По-моему, работа с XML появилась начиная с OfficeXP (owc10.dll).
Не совсем понятно, что вы с помощью этого метода хотите сделать - шабон должент быть в формате Excel XML Так же не понятно зачем вы вообще используете Spreadsheet? У вас не установлен Excel?
__________________
Axapta v.3.0 sp5 kr2 |
|
05.04.2006, 10:12 | #5 |
Участник
|
Цитата:
Цитата:
Имеено он у меня и стоит.....там же откопал хелп по OWC, в методах спридшита описан XMLURL, но все попытки вызвать его из аксапты провалились... |
|
05.04.2006, 10:32 | #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 |
|
05.04.2006, 11:13 | #7 |
Участник
|
Цитата:
Не вышло... (( |
|
05.04.2006, 11:44 | #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> Ща буду добивать )) |
|
05.04.2006, 11:47 | #9 |
Участник
|
regsvr32 owc10.dll
|
|
05.04.2006, 11:53 | #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 |
|
05.04.2006, 13:12 | #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> *БЬЮСЬ ГОЛОВОЙ ОБ КЛАВУ* |
|
05.04.2006, 13:42 | #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 |
|
06.04.2006, 07:20 | #13 |
Участник
|
Все! Сегодня добил Большое спасибо AndyD, без вас не справился бы.....
:РЕСПЕКТ: |
|