|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
|
Работа с вордом и позже с экселем01.04.2021, 00:03. Показов 5000. Ответов 19
Всем доброй ночи!
Сразу говорю, что гуглил, просто, хотелось бы спросить мнение более опытных людей чем я, чтобы идти по правильному алгоритму действий ибо работка будет относительно большая. Мне нужно научиться копировать таблицы из ворда и экселя в latex-документ. С экселем пока не работал, хочу пока с вордом научится. Алгоритм представляю так: Человек указывает ссылку на файл ворда в tex-документе. А так же название к таблице, чтобы можно было понять какую именно таблицу в ворде нужно перенести в латех. После чего, срабатывает паттерн строитель: 1) Создается общая структура таблицы. 2) Берутся данные из первой ячейки таблицы. 3) Ячейка проходит несколько стадий проверки на "форматирование". К примеру, является ли ячейка курсивной, жирной, или обычной. Как именно размещается текст (Слева, центр, справа, внизу, вверху) и т.д. По-сути данные ходят по различным функциям и если значения сходятся, то на данные одевается "одежка". Типа, если данные жирные, то: \textbf{Данные} И так далее. Пока не пройдут все стадии проверки. 4) И такое проходит каждая ячейка, пока не сформируется вся таблица. Я понимаю, что все это слишком просто, но пока картина виднеется вот так. Но когда начал выполнять, то столкнулся с одной фигней. Как из ворда вытащить все данные о таблице? Я знаю про библиотеку python-docx. Однако пока рылся в документации, понял что можно взять данные из таблицы, но можно ли узнать форматирование ячеек? Есть вариант в превращение ворда в XML и работать уже с этим. Однако, когда я сохранил ворд в XML (В ручную, "Сохранить как") и открыл его, то там несколько строчек и одна строка с размером в десятки-сотни тысяч символов. Не очень читабельно и не понятно как понять где таблица и как вообще с этим работать. Что можете посоветовать по моей задачи? Какой вариант лучше и удобнее? Если скажете, что XML, то как там искать нужную информацию?
0
|
|
| 01.04.2021, 00:03 | |
|
Ответы с готовыми решениями:
19
Некорректное отображение символов при работе с экселем и вордом
Работа с вордом |
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
||
| 01.04.2021, 09:40 | ||
|
Документ LaTeX — это текстовый файл, содержащий специальные команды языка разметки. Сам документ делится на преамбулу и тело. ... Тело документа содержит собственно текст документа и команды разметки. Оно должно находиться между командами \begin{document} и \end{document} а зачем в малоизвестный, а не хтмл?
1
|
||
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
|
| 01.04.2021, 10:08 [ТС] | |
|
Ципихович Эндрю, Латех это типа язык заметок для создания документов. Как Ворд, но по-другому. Это долго объяснять, но если вкратце: вы пишете код, а на выходе получаете годный пдф-документ. Латех используют в печатных изданиях и для научных работ. К хтмл или к веб-разработке он никакого отношения не имеет.
Мне же он нужен для дипломного проекта. Собственно, латех это звезда моего проекта: все вокруг него кружится. Для моего вопроса это не суть важно. Мне интересно как из Ворда можно взять данные о любой таблице в нем, так чтобы я знал форматирование каждой ячейки.
0
|
|
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
|
| 01.04.2021, 10:11 | |
|
1
|
|
|
|
|||
| 01.04.2021, 10:12 | |||
|
Ципихович Эндрю, latex - это такой light word, но документ жёстко структурированый, это удобно.
2
|
|||
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
||||||
| 01.04.2021, 10:25 [ТС] | ||||||
|
Ципихович Эндрю, Код? Он тут не слишком поможет) Но если нужно то скину. Он пока особо ничего не делает, кроме как ищет нужный файл. Я остановился, чтобы понять хороший ли вариант я выбрал (С python-docx) Или лучше сменить его пока не поздно.
dondublon, Мне желательно и с вордом научиться и с экселом. С экселом может и проще, но хотелось бы первого зверя (ворда) одолеть. Не хочу это на последок оставлять. Меня и так трясет из-за диплома. Да и должен же быть способ вытащить данные из ворда. XML-структура все-таки. Добавлено через 2 минуты dondublon, О, здраствуйте, я вас не сразу узнал) Вы мне помогали по теме "Python pyqt5 view pdf"
0
|
||||||
|
|
|
| 01.04.2021, 11:43 | |
|
jkfdf,
ну, тогда ищите. xml трогать не надо, python-docx должен дать способ. Гуглить не про python-docx, конечно - он лишь предоставляет доступ к структуре документа. Вам надо найти таблицы в этой структуре. VBA может помочь.
1
|
|
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
|||||||
| 01.04.2021, 11:48 | |||||||
1
|
|||||||
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
||
| 01.04.2021, 11:55 | ||
|
1
|
||
|
|
|||
| 01.04.2021, 12:35 | |||
|
Изучать нужно не python-docx, а внутренний API MS Word и MS Excel. В официальной документации microsoft. И MS Word и MS Excel имеют в ОС свои COM объекты обращаться к которым можно через python враппер pywin32 (пример у Ципихович Эндрю, ), только по части данных о таблице там что-то посложнее будет в плане кода. (Хотя можно и VBA макросами, если разбираешься). https://docs.microsoft.com/ru-... /word.cell
1
|
|||
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
|
| 01.04.2021, 13:33 | |
|
ну пусть ТС определяется, просьба в оконцовке выложить код- на чём остановились, спс
Добавлено через 31 минуту кстати можно и как? изменить код в посте № 8, чтобы исполнялся скрипт не из файла а из Normal.dotm с указанием модуля, спс
1
|
|
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
|
| 01.04.2021, 18:13 [ТС] | |
|
Хм. В принципе, пока ничего сильно не понял, но вектор мыслей вроде задан за это вам спасибо. Особенно идея с VBA. Никогда не думал, что вернусь к нему) А это ведь мой первый язык программирования
![]() Так что если подвести итоги, то... Найти таблицу не то чтобы сложно. я вижу три варианта: 1) Получать данные о форматирование через VBA. Хотя таким я не занимался(когда учил его. Там веселуха была в написание калькулятора), но надеюсь VBA сумеет вывести то что мне надо. Запустить через питон можно, что и славно. Может даже через терминал попробую. 2) Не совсем понял про python-docx. Найти нужную табличку он может. На крайняк можно ввести условия по типу, что перед таблицой нужен абзац с названием таблицы. Да, костыль, но пуфиком. Но можно ли через эту библиотеку узнать что-то про данные в ячейке таблицы? Типа, жирный текст внутри или нет. 3) Работать напрямую через XML. Сложновато как мне кажется ибо там некие схемы XML. Я знаю что это, но никогда не работал с ними. И пока смотрел структуру XML, то заметил что структура таблички и его данные хранятся в разных участках кода. Выложить код? Ну. Как только напишу, так и выложу, если не забуду. Правда когда -- не знаю. У меня здесь сложное маневрирование между делами и на диплом приходиться выделать не так много времени.
0
|
|
|
|
|
| 01.04.2021, 19:43 | |
|
jkfdf, питон не даст вам auto-completion, a VBA даст. Он куда лучше дружит с COM-интерфейсами, через которые надо общаться с документом.
Кроме того, в VBA - не в языке, а в IDE - есть object browser - тот самый, который на скриншоте. То есть там вы можете посмотреть все эти методы в удобном виде. Чтобы потом их скопипастить в питон.
1
|
|
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
|
| 02.04.2021, 12:53 [ТС] | |
|
dondublon, А может и даст. Посидел и изучил документацию python-docx и вроде как он мне даст большинство форматирование каждого символа.
Нахождение таблиц в принципе сделал. Через костыль (Нужно, чтобы первая строка таблицы содержала название таблицы), но думаю я смогу убедить на дипломе, что это лучший вариант. Мне уже самому кажется что это лучший вариант) Конечно, самый интересный вопрос, а что если у нас в ячейке таблицы формула.... Конвертация формула из ворда в латех может создать проблему. Но до этого вопроса доживу. Может вообще не сделаю или придумаю хитрое решение.
0
|
|
|
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,300
|
|
| 03.04.2021, 17:37 | |
|
ещё нужно не забывать о Не здравом смысле, так как никто не гарантировал, что заголовок столбца таблицы будет
РаЗнородным и потом гадай, что же применить......... кстати вба скажет о форматировании ячеек и того, чего нужно, а как в скрипт питона передать это? я вижу только через текстовый файл, ну понятно, что через запись строки в созданную веточку реестра-но это дебри, а как ещё можно?
1
|
|
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
|
| 04.04.2021, 14:49 [ТС] | |
|
Ципихович Эндрю, Эээ, мне пока сложно ответить на подобное. Вкратце, python-docx позволяет видеть некоторую часть стиля. По чтению документации, вроде более чем мне необходимо. К примеру, то что вы написали "РаЗнородным" с точки зрения ворда является разным набором символов, что разделены между собой стилями (Цвет, жирный/курсив и т.д.). Библиотека python-docx работает также. Тоесть, я должен обработать каждый такой набор слов (Тут уже идет полная конвертация полученных данных в latex-код, но в теории это уже будет попроще в плане понимания как делать) и в теории этого должно хватить с лихвой. Знаю, что на практике все можно рушиться, но думаю надо пробовать все же не лезть в макросы без крайней необходимости.
Давайте так. Если все будет гуд, до где-то до конца следующей недели я хочу уже полностью сделать работу с таблицами вордом. Если интересно какая именно будет реализация моей идеи, то сюда отпишусь.
0
|
|
|
2 / 2 / 0
Регистрация: 08.04.2017
Сообщений: 23
|
||||||
| 18.04.2021, 11:06 [ТС] | ||||||
|
Ципихович Эндрю, dondublon, Ну, вообщем прошло несколько больше времени чем я ожидал. Но вроде сделал. Эксель уже не делаю, но ворд сделал именно через python-docx. Как оказалось, самая сложная задача это объединение ячеек между собой. Писал алгоритм больше чем все остальное по ворду. Существует 100500 нюансов со стороны как и ворда, так и латеха вместе с библиотекой python-docx. Сложно реализовать универсальное и простое решение. Но вроде как сумел. С точки зрения реализаций всяких жирный, курсив и т.д. В целом это не сложно. За несколько дней все сделал. В ворде все делиться на параграфы, а параграфы на run. Эти run-ы можно обработать. Вот через них я и работаю с текстом.
Вот пример. Я его укротил, чтобы не сильно много кода было:
Да и до сдачи диплома уж точно не хочу.Всем спасибо еще раз за помощь)
0
|
||||||
|
|
|
| 19.04.2021, 09:36 | |
|
jkfdf, чота по-моему вы не тем занимаетесь.
0
|
|
| 19.04.2021, 09:36 | |
|
Помогаю со студенческими работами здесь
20
Работа с Экселем через C# Работа с вордом(Вывод страницы в колонтитул) Ошибки с экселем. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|