Текущее время: Сб, июл 19 2025, 12:26

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


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

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


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

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