|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
|
Чем прочитать ячейку Excel, в которой есть разные стили текста13.06.2022, 19:49. Показов 3232. Ответов 23
Здравствуйте, коллеги.
В прошлый раз мы разобрались, как записать текст в ячейку Excel с разными стилями (ссылка). Теперь вопрос - как открыть файл Excel и прочитать из него такую форматированную строку так, чтобы извлечь стили? Пример строки в ячейке: |пример строки| Во задача..)) Или хотя бы (для начала) скопировать лист с такими форматированными строками из одной книги Excel (желательно XLSX) в другую!
0
|
|
| 13.06.2022, 19:49 | |
|
Ответы с готовыми решениями:
23
Разные стили текста прямо в форме Почему не получается прочитать ячейку Excel?
|
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
|
| 15.06.2022, 12:07 | |
|
попробуйте: https://docs-python.ru/package... -stiljami/
отпишитесь если решите
0
|
|
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
|
| 15.06.2022, 14:05 [ТС] | |
|
Благодарю. В этой статье только как оформить, т.е. про "запись". С этим пока проблем нет.
Суть вопроса: есть текст в XLSX, оформленный разными стилями в единой ячейке (пример кода, который создает такой текст, тут). Ладно, форматированный XLSX готов. А теперь вопрос - как открыть такой файл и распарсить ячейку так, чтобы не потерять разные стили. Или хотя бы скопировать ячейку с полным сохранением ее содержимого с форматированием. Я думаю, копать надо сюда, но тут нет информации про цвета кусков текста в ячейке. Есть инфа про шрифт, наверное в нем и про цвет можно узнать. И цвет фона ячейки?... Тема интересная, исследовательская.
0
|
|
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
|
| 15.06.2022, 16:55 | |
|
Надеюсь тут можно оставлять ссылки на stackoverflow.
Посмотри: How to keep style format unchanged after writing data using OpenPyXL package in Python? Там есть и теория и практика.
0
|
|
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
|
| 15.06.2022, 18:14 | |
|
то есть читать два файла
sharedStrings.xml sheet1.xml ТС, получилось?
0
|
|
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
||||||
| 15.06.2022, 18:58 | ||||||
|
Нужно просто в проекте создать файл extendedopenpyxl.py, запихнуть туда код для версии выше 2.5.14:
Кликните здесь для просмотра всего текста
и уже вызывать ф-и из созданного нами файла extendedopenpyxl
1
|
||||||
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
||||||
| 15.06.2022, 19:24 | ||||||
|
ясно, а потом, если опробовать код:
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
|
| 15.06.2022, 19:41 [ТС] | |
|
Если в PyCharm, то установить курсор на "lxml" в строке "from lxml.etree import fromstring as lxml_fromstring" и навести курсор. Вылезет подсказка, в которой будет ссылка на инсталляцию модуля.
0
|
|
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
|
| 15.06.2022, 19:45 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
||||||
| 15.06.2022, 19:46 [ТС] | ||||||
|
Я запустил скрипт копирования файла, но он скопировался так, что некоторые ячейки сместились.
То ли данные в моем файлы специфичны, то ли.. Но что радует - все форматирование в ячейках сохранилось!! Пример моего файла "reqEx_1.xlsx" приложил. Скрипт копирования файла:
0
|
||||||
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
|
| 15.06.2022, 19:51 | |
|
о чём речь, в D5 смещение?
0
|
|
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
|
| 15.06.2022, 20:03 | |
|
sazurov, а зачем тебе копировать файл с помощью этого кода?
есть shutil.copy https://docs.python.org/3.8/li... hutil.copy
0
|
|
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
||
| 15.06.2022, 20:06 [ТС] | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
||
| 15.06.2022, 20:17 [ТС] | ||
|
Теперь ты дал отличный "extendedopenpyxl.py" и все бы хорошо, только он неточно сохраняет. Или в исходных данных проблема, как вариант. Добавлено через 5 минут Все отлично! Для "extendedopenpyxl.py" надо брать самый последний скрипт на этой странице.
0
|
||
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
||||||
| 15.06.2022, 20:21 | ||||||
|
sazurov, так самый последний скрипт и был под спойлером)
Чем прочитать ячейку Excel, в которой есть разные стили текста Только 2 импортов не хватало: Element, SubElement
0
|
||||||
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
||||||
| 15.06.2022, 20:34 | ||||||
|
New Life,
0
|
||||||
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
||||||
| 15.06.2022, 20:44 | ||||||
|
Ципихович Эндрю, это?
0
|
||||||
|
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,318
|
||||||
| 15.06.2022, 20:56 | ||||||
|
New Life, да, две последние не взлетели:
2 СОСТАВ ФУНКЦИЙ. <openpyxl.styles.fonts.Font object> Parameters: name='Calibri', charset=1, family=2.0, b=False, i=False, strike=None, outline=None, shadow=None, condense=None, color=<openpyxl.styles.colors.Color object> Parameters: rgb='FFFF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb', extend=None, sz=11.0, u=None, vertAlign=None, scheme=None <openpyxl.styles.fills.PatternFill object> Parameters: patternType='solid', fgColor=<openpyxl.styles.colors.Color object> Parameters: rgb='FFFFCFD5', indexed=None, auto=None, theme=None, tint=0.0, type='rgb', bgColor=<openpyxl.styles.colors.Color object> Parameters: rgb='FFFAF4BB', indexed=None, auto=None, theme=None, tint=0.0, type='rgb' <openpyxl.styles.borders.Border object> Parameters: outline=True, diagonalUp=False, diagonalDown=False, start=None, end=None, left=<openpyxl.styles.borders.Side object> Parameters: style=None, color=None, right=<openpyxl.styles.borders.Side object> Parameters: style=None, color=None, top=<openpyxl.styles.borders.Side object> Parameters: style=None, color=None, bottom=<openpyxl.styles.borders.Side object> Parameters: style=None, color=None, diagonal=<openpyxl.styles.borders.Side object> Parameters: style=None, color=None, vertical=None, horizontal=None <openpyxl.styles.alignment.Alignment object> Parameters: horizontal='general', vertical='bottom', textRotation=0, wrapText=False, shrinkToFit=False, indent=0.0, relativeIndent=0.0, justifyLastLine=None, readingOrder=0.0 General <openpyxl.styles.protection.Protection object> Parameters: locked=True, hidden=False ТС, что скажете?
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 34
|
|
| 15.06.2022, 21:13 [ТС] | |
|
Это отлично, мы сильно продвинулись!
Конечно, хочется большего. Например, как в конец (или лучше в середину) текста этой ячейки "cell_ = sheet.cell(row=3, column=4)" добавить подстроку так, чтобы осталось исходное форматирование?
0
|
|
|
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
|
|||||||||||
| 15.06.2022, 21:31 | |||||||||||
|
sazurov,
если грубо, то в середину можно так:
0
|
|||||||||||
| 15.06.2022, 21:31 | |
|
Помогаю со студенческими работами здесь
20
Перенос текста из TextBox в ячейку Excel Перенос текста в одну ячейку Excel Добавление текста из TextBox в ячейку EXCEL
Подставка текста в любую не активную ячейку(и) Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|