Текущее время: Пн, июл 21 2025, 05:12

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


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

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


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

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