Текущее время: Пт, июл 18 2025, 14:39

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Считать метаданные файла
СообщениеДобавлено: Чт, мар 13 2014, 10:29 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 05 2013, 15:31
Сообщения: 13
Добрый день.

Нужно считать метаданные файла (*.xlsx) по его расположению с помощью ФМ\метода.

Интересует конкретное поле "Категория" (правый клик-свойства-подробно).

Инфу в "Категорию" я сам запихиваю, так что можно и в любое другое поле ее вписать, просто выбрал уже именно это поле.. но можно и поменять. Главное чтобы юзеры и система поле случайно не перетерли.

Буду благодарен за подсказку! Спасибо! :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Считать метаданные файла
СообщениеДобавлено: Чт, мар 13 2014, 12:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Посмотри, как это можно сделать на VBA.
Потом можно будет повторить через OLE на ABAP.

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Считать метаданные файла
СообщениеДобавлено: Чт, мар 13 2014, 13:57 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 05 2013, 15:31
Сообщения: 13
Насколько я понимаю, для работы через OLE нужно будет открыть файл. Это не очень желательно..

Должен же быть метод какой-то.. :?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Считать метаданные файла
СообщениеДобавлено: Чт, мар 13 2014, 16:43 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 05 2013, 15:31
Сообщения: 13
Ну, или если иначе никак, то как это будет выглядеть в VBA?.. Или сразу в ABAPе..

UPD.
Продолжаем расследование. :)
В VBA это выглядит подобным образом (проставляется поле "Категория"):
wbkCreate.BuiltinDocumentProperties(18) = PARAM1 & ";" & PARAM2
Теперь будем переносить в ABAP.

Я не мастер ни в OLE, ни в VBA, поэтому возникают трудности. Если кто быстрее меня разберется как это получить в ABAPе (желательно не открывая файл, для большей производительности), то буду признателен за этот кусок кода. :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Считать метаданные файла
СообщениеДобавлено: Пт, мар 14 2014, 10:48 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, фев 17 2006, 07:38
Сообщения: 99
xlsx файл представляет из себя набор xml файлов, заключённых в zip контейнер. Метаданные файла распложены в \docProps\core.xml. Если хотите обрабатывать без OLE, то загружайте xlsx файл, распаковывайте core.xml и парсите его.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Считать метаданные файла
СообщениеДобавлено: Пн, мар 17 2014, 10:20 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 05 2013, 15:31
Сообщения: 13
vahtang , спасибо за инфу, но в данном случае не применимо :)

===

Вопрос до сих пор актуален.... :|


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Считать метаданные файла  Тема решена
СообщениеДобавлено: Пн, мар 17 2014, 15:42 
Начинающий
Начинающий

Зарегистрирован:
Пт, июл 05 2013, 15:31
Сообщения: 13
C OLE разобрался, демонстрирую. :) Видимо, это единственный вариант..

Цитата:
DATA l_filename TYPE char256 VALUE 'C:\excelfile.xlsx'.

DATA: l_ole_application TYPE ole2_object,
l_ole_workbooks TYPE ole2_object,
l_ole_book TYPE ole2_object,
l_ole_item TYPE ole2_object,
l_ole_properties TYPE ole2_object,
l_category TYPE string.

CREATE OBJECT l_ole_application 'Excel.Application' NO FLUSH.

CALL METHOD OF
l_ole_application
'Workbooks' = l_ole_workbooks
NO
FLUSH.

CALL METHOD OF
l_ole_workbooks
'OPEN' = l_ole_book
NO
FLUSH
EXPORTING
#1 = l_filename.

GET PROPERTY OF l_ole_book 'BuiltinDocumentProperties' = l_ole_properties NO FLUSH.

CALL METHOD OF
l_ole_properties
'Item' = l_ole_item
NO
FLUSH
EXPORTING
#1 = 'Category'.

GET PROPERTY OF l_ole_item 'Value' = l_category NO FLUSH.

CALL METHOD OF
l_ole_workbooks
'Close'
NO
FLUSH.

CALL METHOD OF
l_ole_application
'Quit'
NO
FLUSH.

FREE OBJECT l_ole_application.
CLEAR l_ole_application.

CALL FUNCTION 'FLUSH'.

WRITE l_category.



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

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


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

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


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

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