Текущее время: Вс, июл 20 2025, 20:11

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по работе с Excel
СообщениеДобавлено: Ср, янв 10 2007, 14:17 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 04 2006, 05:56
Сообщения: 75
Откуда: Казахстан
Люди добрые.

Вы уже ни раз помогали мне. Не оставте и этот вопрос без ответа.

Мне дают excel-евский файл, в которой имеется таблица с данными для создания материалов. Мне нужно вытащить данные из этого файла, создать материалы, а потом загрузить в другой файл данные материалов, которые не смогли создаться. Расположение столбцов и наименование их должны быть идентичны начальному файлу.
В принципе я эту задачу решил, но не граммотно. Я открывал файл, и по отдельности брал и считывал значения с каждой ячейки и записывал во внутреннюю таблицу. Потому же принципу создавал новый файл.
Из-за этого программа очень долго работает.

Полазил по форуму. И нашел некоторые ФМ. Но как с ними работать я не понял.
Например для загрузки данных из excel-евского файла используют
ALSM_EXCEL_TO_INTERNAL_TABLE. Как работает этот модуль понятно, но проблема в том, что я не знаю сколько будет заполненных строк в в файле и поэтому я не знаю что в таком случае подставлять в параметр I_END_ROW.

Или для выгрузки данных из внутренней таблицы в excel-евский файл используется ФМ EXCEL_OLE_STANDARD_DAT. Здесь мне не понятно какой вид должен быть у таблицы FIELDNAMES и что в нее записывать. Помимо этого в моей внутренней таблице находятся только данные по материалам, а названия столбцов (скопируемые из начального файла) находятся в другой таблице. Мне эту таблицу тоже надо передать в excel.

Помогите разобраться в данном вопросе. Может быть кто-то посоветует другой вариант?

Заранее благодарю.

С Уважением.
Начинающий абапер.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по работе с Excel
СообщениеДобавлено: Ср, янв 10 2007, 15:12 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, янв 24 2005, 16:22
Сообщения: 749
Пол: Мужской
Марат написал(а):
Мне дают excel-евский файл, в которой имеется таблица с данными для создания материалов. Мне нужно вытащить данные из этого файла, создать материалы, а потом загрузить в другой файл данные материалов, которые не смогли создаться. Расположение столбцов и наименование их должны быть идентичны начальному файлу.
В принципе я эту задачу решил, но не граммотно. Я открывал файл, и по отдельности брал и считывал значения с каждой ячейки и записывал во внутреннюю таблицу. Потому же принципу создавал новый файл.
Из-за этого программа очень долго работает.


Во-первых, что именно долго работает? чтение данных из ячеек или запись в них?
Во-вторых, excel видим или нет во время работы? (разница на порядок по производительности может быть)
В-третьих, подобную операцию надо выполнять постоянно или единовременно? (если один раз, то зачем трогать то, что уже работает)
В-четвертых, насколько критично, что исходный файл именно Excel? Можно ли обычный текстовый файл с табуляторами использовать?

_________________
Счастье есть!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 15:39 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 04 2006, 05:56
Сообщения: 75
Откуда: Казахстан
Добрый вечер, Tetty.

Отвечаю по пунктам:
1. Тормозит при чтении данных и при записи.
2. Excel не видим.
3. Пользователь будет подготавливать таблицы в excel и с помощью моей программы будет создавать материалы, основываясь на данных, считанных с excel. Если материал не был создан, то его данные будут обратно передаваться в новый файл, чтобы пользователь мог изменить неправельные данные этого материала в excel-е и запустить заново программу, указав созданный файл.
4. Так как пользователь будет работать с таблицей, то нужно чтобы файл был excel-евский.

С Уважением,
Начинающий


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 15:45 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Марат, Excel не только c xls работает, но и с текстовыми (*.txt) с tab разделителем. Структура файла у вас простая, так и используйте обычный txt, как предложил Tetty


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 15:54 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 04 2006, 05:56
Сообщения: 75
Откуда: Казахстан
Большое Спасибо за помощь.
Попробую как Вы посоветовали.


С Уважением
Начинающий абапер


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 16:11 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 04 2006, 05:56
Сообщения: 75
Откуда: Казахстан
Попробовал вручную сохранить .xls как .txt и потом открыть через Excel. Появился недочет. Текстовые данные со значением '001' (например "Номер группы") стали числовыми '1'. При поиске такой группы, во время создании материала, результат будет отрицательным.
Да и пользователь будет теряться в таких данных, когда будет открывать txt-файл в excel-е для корректировки данных.

Как быть с этой проблемой?

С Уважением
Начинающий


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 17:45 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
На третьей вкладке wizard предлагает указать тип колонки. Выделяете все колонки и выставляете тип Text.

Соглашусь, для пользователя это не очень удобно, лучше бы использовать csv формат, но эксел ведет сеья не корректно, считает что даже в кавычках "00001" - это цифра. Увы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 10 2007, 18:02 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Вт, окт 04 2005, 10:21
Сообщения: 972
Откуда: Киев
Пол: Мужской
Я не абапер, но множество раз загружал разнообразные данные из екселя. Правда делали через пакетный ввод. Береш свой екселевский файл, сохраняешь в блокнотике (*.txt) и вперед. Может это не так круто как через ФМ, то такой способ пока не подводил.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 15:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 04 2006, 05:56
Сообщения: 75
Откуда: Казахстан
Всем Доброго вечера!

Не стал создавать новую тему, т.к. моя новая задача почти похожа на предыдущую но...

Теперь от меня требуется создать программу для закачки материалов из Excel в БД в фоновом режиме. Пользователь не собирается сохранять файл в CSV или TXT. :evil: А так же, по завершению работы программы, непринятые материалы должны будут выгружаться обратно в Excel.
Мои идеи: :idea:
- Пользователь
запускает программу и указывает "загрузить файл"
- Программа
сохраняет Excel-еский файл как CSV.
загружает CSV на сервер
удаляет CSV файл с компьютера
в Фоновом режиме обрабатывает файл с сервера
создает файл на сервере с ошибочными данными
- Пользователь
запускает туже программу (на следующий день или часов), но указывает "считать файл"
- Программа
выгружает файл с сервера в Excel

:?: Есть у кого-нибудь другие идеи, а то-как то на мой взгляд немного коряво? :? Можно ли выгрузить Excel на сервер и потом считать его во внутреннюю таблицу?

ЗЫ. Количество записей неизвестно. Могет быть допупа, так как копируюся из одной системы в другую.

Заранее благодарен!

_________________
С Уважением,
Начинающий


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 13 2007, 17:15 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, авг 02 2006, 15:26
Сообщения: 97
я бы написал макрос в EXCELе на VBA который читает из себя (excel) что нужно и через RFC пихает в SAP туда или обратно.

вернее не написалы бы а так и пишу.

через файлы это изврат.. связь должна быть напрямую.

как работать из VBA с RFC тут по поиску можно найти.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс, июл 29 2007, 21:08 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Можно просто завести свою табличку нужной структуры, и в нее складировать данные, импортированные из Excel. Естественно одно из полей будет содержать статус обработки - всегда можно будет посмотреть что пришло, что обработано, можно и сторнирование навесить. Ну и выгрузку ошибочны обратно а Excel. Сама по себе работа с Excel из SAP через OLE не есть сложная.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

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


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

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


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

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