AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2005, 10:52   #1  
yooshi_imported is offline
yooshi_imported
Участник
 
73 / 10 (1) +
Регистрация: 05.05.2005
Пожалуйста,подскажите,как из exel'я перенести данныев аксапту. Какие есть подходы. как вообще работать с exele'м, какие классы... большое спасибо
Старый 23.06.2005, 13:34   #2  
NetBus_imported is offline
NetBus_imported
Участник
 
2 / 10 (1) +
Регистрация: 23.06.2005
1. Excel --> *.csv
2. Дальше все просто.
Старый 23.06.2005, 13:40   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
сначала готовите шаблон
Главное меню \ Администрирование \ Периодические операции \ Экспорт/Импорт данных \ Мастер шаблонов Excel
далее заполняете этот шаблон данными
далее импортируете, создав группу определения с типом Excel

Но лучше воспользоваться преобразованием в тестовый файл
http://axapta.mazzy.ru/lib/import/
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2005, 13:53   #4  
yooshi_imported is offline
yooshi_imported
Участник
 
73 / 10 (1) +
Регистрация: 05.05.2005
спасибо большое, но как программно записать и считать данные из exel'я ???
Старый 23.06.2005, 14:03   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
через ole
см. семейство классов SysExcel, например
__________________
полезное на axForum, github, vk, coub.
Старый 23.06.2005, 15:35   #6  
NeveB_imported is offline
NeveB_imported
Участник
 
6 / 10 (1) +
Регистрация: 09.04.2004
Вот кусок кода построчного чтения из файла 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  
yooshi_imported is offline
yooshi_imported
Участник
 
73 / 10 (1) +
Регистрация: 05.05.2005
а как можно определить тип поля в exele'вском файле???
просто когда получаю объект COMVariant, то нельзя получить "нормальное" значение,если приводить к toString().

comVariant = SysExcelWorksheet.cells().item(row, col).value().toString()

получится "<значение> VT_R8" или "<значение> VT_BSTR" а мне нужно просто <знчение>, подскажите что-нибудь
Старый 24.06.2005, 07:13   #8  
NeveB_imported is offline
NeveB_imported
Участник
 
6 / 10 (1) +
Регистрация: 09.04.2004
<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  
yooshi_imported is offline
yooshi_imported
Участник
 
73 / 10 (1) +
Регистрация: 05.05.2005
да,но почему-то если в ячейке только цифры,то bStr() ничего не вернет
Старый 24.06.2005, 11:41   #10  
NeveB_imported is offline
NeveB_imported
Участник
 
6 / 10 (1) +
Регистрация: 09.04.2004
значит тип не строка, а числовой, пользуйся функциями float(), double() вместо bStr()
Старый 24.06.2005, 13:17   #11  
yooshi_imported is offline
yooshi_imported
Участник
 
73 / 10 (1) +
Регистрация: 05.05.2005
так в том то и трудность((( как узнать тип поля из кода? пытался typeof,typeid....подскажите,может что придумаете)
Старый 24.06.2005, 13:50   #12  
NeveB_imported is offline
NeveB_imported
Участник
 
6 / 10 (1) +
Регистрация: 09.04.2004
смотри в справке аксапты по COMVariant.variantType - думаю достаточно подробно описано
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:48.