Текущее время: Ср, июл 30 2025, 19:05

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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