Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

23 Апрель 2021, 09:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 »   Вниз
  Печать  
Автор Тема: Функция FILTERXML (ФИЛЬТР.XML) LibreOffice Calc  (Прочитано 1580 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 381


WWW
« Ответ #15: 17 Март 2021, 17:03 »

Каков размер Вашего файла? Может быть, он слишком велик для размещения в ячейке.
Записан

Владимир.
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #16: 17 Март 2021, 17:04 »

xml-файл размером 8742 байт
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 381


WWW
« Ответ #17: 17 Март 2021, 17:05 »

Выложите его, посмотрим.
Записан

Владимир.
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #18: 17 Март 2021, 17:07 »

К сожалению, не получится. Могу попробовать заменить реальные данные на ерунду, сохранив структуру.
Но тут тоже, "по-быстрому" не выйдет, думаю
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 381


WWW
« Ответ #19: 17 Март 2021, 17:09 »

Давайте. Главное, чтобы результирующий файл у Вас на компьютере приводил к ошибке (или зависанию). Кстати, кодировка у файла UTF-8 ?
Записан

Владимир.
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #20: 17 Март 2021, 17:12 »

парсить на Python
Python для меня непролазная чаща. К тому же, насколько я понял, нет встроеных в LO средств отладки. Внесение изменений сложное в сравнении с LO Basic.
Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #21: 17 Март 2021, 17:14 »

кодировка у файла
ANSI 1251
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 381


WWW
« Ответ #22: 17 Март 2021, 17:21 »

Тогда понятно. LO (и весь цивилизованный мир Улыбка ) уже давно перешел на UTF-8. Прошу прощения, что забыл о кодировке сразу написать. Попробую добавить возможность обработки альтернативных кодировок (не быстро).
Какова первая строка Вашего файла, типа:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Записан

Владимир.
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #23: 17 Март 2021, 17:40 »

Такой строки здесь нет.
Здесь все не как у людей. =)
« Последнее редактирование: 17 Март 2021, 17:42 от ost » Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #24: 17 Март 2021, 17:48 »

Попробую добавить возможность обработки альтернативных кодировок (не быстро).
Спасибо.
Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #25: 17 Март 2021, 18:03 »

Вот еще какой вопрос. Насколько эффективно для моих целей (а это, по-сути, разбор одного или кучи xml-файлов и выдергивание из них определенных данных и вставка их в лист Calc с целью дальнейшей обработки с помощью Basic) использовать XSLT? Или выучить Python проще?
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 381


WWW
« Ответ #26: 17 Март 2021, 18:18 »

Добавил кодировку - второй параметр функции FILETOSTR (пример в ячейке A1). Если кодировка UTF-8, то задавать второй параметр не надо.
О возможных значениях кодировок см. документацию по методу setEncoding.

По поводу обработки XML с помощью Python я высказал свое мнение в ответе #13. Все форматы LO представляют собой архивы, состоящие из XML-файлов, так что в этом авторы LO знают толк. Что касается XLST, то это язык для преобразования XML из одного вида в другой. Если Ваша задача именно такая, то да, есть смысл освоить.

* FilterXML.ods (15.05 Кб - загружено 8 раз.)
« Последнее редактирование: 17 Март 2021, 18:32 от sokol92 » Записан

Владимир.
economist
Форумчанин
***
Offline Offline

Сообщений: 1 424


« Ответ #27: 18 Март 2021, 09:02 »

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

Уже пару лет как есть расширение APSO, https://extensions.libreoffice.org/en/extensions/show/apso-alternative-script-organizer-for-python

Питон учится за неделю-две, не зря его сделали учебным и на нем изучают все алгоритмы в вузах.

Я не призываю "бросать всё" и учить Питон, но решенных и "полностью разжеванных" программистских задач под ним - море разливанное, особенно что касается импорта/обработки/анализа/визуализации данных. 50% всего этого - один Python и 50% - сотня других технологий. Calc, если его приравнять к Excel, в этом списке - "в середины второй половины". Условно, конечно.   

Кстати, стык LO+UNO+Python - тоже очень даже непрост. Но в том-то и дело что код с LO Basic на Python+UNO переписывается влет, т.к. команды API - одинаковые. И самый большой профит получается "между" API-командами, когда нужен банальный парсинг строк, операции с массивами итд. Для них в Python существуют структуры - списки, кортежи, словари, множества, которые реализуют чаяния программистов самым лучшим образом (из-за них и вся ненависть не-питонистов к языку - уж больно хорошо там это получилось реализовать).

Один 8кб XML - точно не повод для Питона, такой файл построчно считать Basic-ом и не париться. А вот гигабайтный CSV обработать и загнать в Calc или в Base SQLite - повод, "вкусный" пример я на Форуме приводил. Кода на "удаве" в 4 раза меньше, скорости - в 4 раза больше.

 

Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #28: 18 Март 2021, 18:38 »

Добавил кодировку
Спасибо. Работает.
Текст xml-файла копируется в ячейку с пользовательской функцией.
Отлично работает выражение типа
Код:
=ФИЛЬТР.XML(FILETOSTR("D:\ПутьКФайлу.xml";"windows-1251");"//sender/inn")
Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 158


« Ответ #29: 18 Март 2021, 18:40 »

economist,
харизматичный вы человек.
Попробую заглянуть в Python. Добавить бы к суткам 2-3 часа. =)

К слову об APSO. Такая грусть. https://yadi.sk/i/lYNoQVuiFjCPTw

« Последнее редактирование: 18 Март 2021, 18:50 от ost » Записан
Страниц: « 1 2 3 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!