Текущее время: Вс, авг 03 2025, 23:56

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Вт, авг 25 2009, 17:41 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Hello,
Есть следующая задача выгрузить из произвольного EXEL файла данные в таблицу.
Как выгрузить из файла с фиксированным числом строк и столбцов знаю, как задать динамическую таблицу если известы свойства строк столбцов тоже знаю(
Code:
call method cl_alv_table_create=>create_dynamic_table
               exporting
                  it_fieldcatalog = ifc
               importing
                  ep_table        = dy_table.
  assign dy_table->* to <dyn_table>.
* Create dynamic work area and assign to FS
  create data dy_line like line of <dyn_table>.),
но вот как обявить динамическую таблицу для произвольного файла , еще не догадался как задать структуру таблицы exporting parameter it_fieldcatalog для cl_alv_table_create=>create_dynamic_table. Подскажите пожалуйста, наверняка такая проблема уже известна.
Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Вт, авг 25 2009, 18:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
если нужно загружать произвольный excel с табличным содержимым,
то выборочно считывайте N произвольных строк и по содержимому
столбца в разрезе строк определяете его тип, если он уже не задан для ячейки


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 10:57 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Такой способ не подойдет, ну если ни у кого нет готовых идей, может тогода кто-нибудь подскажет как понять что достигнут конец строки и столбца, (и еще если допустим фаил имеет следующуб структуру первые 100 строк заполнены потом 100 строк пустые и потом опять 100 строк заполнены, можно ли как нибуд отследить в таком случаи где заканчивается фаил?)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 11:40 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
DaV написал(а):
Такой способ не подойдет, ну если ни у кого нет готовых идей, может тогода кто-нибудь подскажет как понять что достигнут конец строки и столбца, (и еще если допустим фаил имеет следующуб структуру первые 100 строк заполнены потом 100 строк пустые и потом опять 100 строк заполнены, можно ли как нибуд отследить в таком случаи где заканчивается фаил?)


для таких целей, а именно загрузить все записи не ограничиваясь указанием номеров строк использую TEXT_CONVERT_XLS_TO_SAP . Но все равно для этого вам нужно уже сформировать таблицу для принятия данных (вся структуру типа CHAR) , но с определением количества столбцов вряд ли получится , думаю придется брать максимальное число колонок , и потом уже как то обрабатывать , но не уверен даст ли система создать такую ограменную структуру :?

Но просто для интереса что за необходимость такая возникла , просто если это какие загрузки данных в сап то обычно с форматом заранее определяются

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 11:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
определение последнего столбца/строки где-то проскакивало,
пользуйтесь поиском


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 11:52 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
насчет трудности определения колонки поторопился , в VBA можно сделать в инете есть примеры , так что OLE2 в руки :)

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 13:44 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
программу то я написал и структуру таблицу вроде тоже задал (динамическая таблица), но работает уж больно медленно,вот хотел бы оптимизировать,
trop написал(а):
определение последнего столбца/строки где-то проскакивало,
пользуйтесь поиском

уже искал что-то нашел но пока не помогло , боюсь что и не поможет так как различные строки могут иметь различную длину, а бежать по всем и искать максимальное дело не очень хорошее, система тогда вообще подвиснет, надо сразу получить максимальные значения длины и ширины, и хорошо бы еще количество листов в файле


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 14:14 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
трясите VBAшников на соотв форумах

какая-то задача утопическая, неужели постановка такая ..
и за что? :mrgreen:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Ср, авг 26 2009, 14:18 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
DaV написал(а):
программу то я написал и структуру таблицу вроде тоже задал (динамическая таблица), но работает уж больно медленно,вот хотел бы оптимизировать,
trop написал(а):
определение последнего столбца/строки где-то проскакивало,
пользуйтесь поиском

уже искал что-то нашел но пока не помогло , боюсь что и не поможет так как различные строки могут иметь различную длину, а бежать по всем и искать максимальное дело не очень хорошее, система тогда вообще подвиснет, надо сразу получить максимальные значения длины и ширины, и хорошо бы еще количество листов в файле


используйте OLE2 примеров масса в инете
вот например Last used cell in one row or one column

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Чт, авг 27 2009, 19:19 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Осталась еще одна так т не решенная проблемма с динамической таблице , задаю ее с помощью класса
Code:
  call method cl_alv_table_create=>create_dynamic_table
    EXPORTING
      it_fieldcatalog = ifc
    IMPORTING
      ep_table        = dy_table.

но проблема заключается в том что количество столбцов в таблице может привышать 99 и доходить до 256, получаю ошибку "Die Länge der Struktur in einem Nicht-Unicode-Syst 260 DATA " не подскажите какие есть еще классы без ограничения количества столбцов в таблице (или какие есть альтернативные варианты)?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Пт, авг 28 2009, 14:12 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Не ужели ни кто не знает?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Пт, авг 28 2009, 14:23 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
DaV написал(а):
Не ужели ни кто не знает?

Сам не сталкивался с проблемой динамического создания таблиц с гигантским количеством колонок, но думаю похожих классов нет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Пт, авг 28 2009, 14:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
1) Если судить по тексту сообщения об ошибке, похоже, проблема в том, что у вас не-юникод система.
2) Есть другой сопособ генерации динамических таблиц. Посмотрите на классы времени выполнения (RTTS - Run Time Type Services) и операторы create data type handle. Возможно у них не будет таких ограничений.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Пт, авг 28 2009, 15:31 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
DaV написал(а):
trop написал(а):
определение последнего столбца/строки где-то проскакивало,
пользуйтесь поиском

уже искал что-то нашел но пока не помогло , боюсь что и не поможет так как различные строки могут иметь различную длину, а бежать по всем и искать максимальное дело не очень хорошее, система тогда вообще подвиснет, надо сразу получить максимальные значения длины и ширины, и хорошо бы еще количество листов в файле

Смотрите хелп в Екселе, вот пример оттуда:
Code:
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузга из EXСEL в ДИНАМИЧЕСКУЮ таблицу
СообщениеДобавлено: Пт, авг 28 2009, 16:45 
Специалист
Специалист

Зарегистрирован:
Вт, июл 07 2009, 13:24
Сообщения: 235
Кодер написал(а):
2) Есть другой сопособ генерации динамических таблиц. Посмотрите на классы времени выполнения (RTTS - Run Time Type Services) и операторы create data type handle. Возможно у них не будет таких ограничений.

да я тоже уже над данным думал, сначала объявить свой тип а потом задать соответствующую таблицу,но проблема в том что у меня система не R/3 а SRM и в ней отстутствуют некоторые стандартные классы а из тех что есть не чего не подошло пока, вы не могли бы уточнить какаой из классов вы рекомендуете. Спасибо


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB