Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/41: Рейтинг темы: голосов - 41, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
1

Работа с данными файлов Excel .xlsx.

24.01.2017, 22:22. Показов 7391. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
А у меня тоже вопрос по теме, если позволите. При записи питоном каких либо данных в уже существующий экселевский файл, все форматирование, таблицы и графики сбиваются, а некоторые пропадают. Это можно настроить как-то, или обойти?
Если нужен конкретный пример, вот. Мне необходимо построить график интегрированной функции. Причем довольно много раз. Я создаю функцию, делаю там с ней свои дела, делаю из нее длинный такой массив, потом записываю весь этот массив в эксель, потом уже в эеселе делаю из него график и любуюсь. И повторять мне это надо несколько раз, а каждый раз как я записываю в эксель новый масив, старый график удаляется. А мне бы хотелось, чтобы он просто изменялся с новыми данными. Или я просто много хочу?
Надеюсь понятно обьяснил. Спасибо за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2017, 22:22
Ответы с готовыми решениями:

Работа с данными файлов Excel .xlsx. Чтение и вывод данных с использованием модуля openpyxl
Здравствуйте! Пытаюсь освоить работу чтения и записи данных в таблицы Excel, используя Python и его...

Как заполнить/считать таблицу excel.xlsx данными и не убить весь дизайн таблиц?
Здравствуйте, есть DataGrid на форме из нее надо перенести данные в эксель файл уже с готовым...

Работа с атрибутами xlsx-файлов
Нужно изменить атрибут "Автор", который видно в изображении, приложенном к посту. Я нашёл класс...

Автоматическое копирование файлов Word(doc, docx), Excel(xls, xlsx) на флешку
Добрый день! Вопрос в подходе к решению задачи, а точнее какие необходимы классы, методы....

18
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
25.01.2017, 09:38 2
Какой либой пользуетесь для екселя?
0
20 / 21 / 6
Регистрация: 30.06.2015
Сообщений: 431
25.01.2017, 11:01 3
Balashow, csv вам не подходит, верно?
0
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
25.01.2017, 22:26  [ТС] 4
Здравствуйте. Пользуюсь Openpyxl. Во всем очень удобная библиотека, кроме вот этого.
csv может и подошел бы, если бы я умел с ним обращатся. но только я не умею
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
26.01.2017, 09:13 5
Balashow, ну, тогда не в курсе. Смотреть, изучать надо.
0
2741 / 2340 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
26.01.2017, 15:25 6
Цитата Сообщение от Balashow Посмотреть сообщение
csv может и подошел бы, если бы я умел с ним обращатся.
Не подошел бы. Он подходит только если нужно создать эксель отчет за 1 мин, с более сложными случаями там ничего не выйдет, о форматировании и речи нет.
0
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
26.01.2017, 16:10  [ТС] 7
Хорошо, буду думать дальше. Всем спасибо за ответ.
0
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
26.01.2017, 21:44 8
Файлик какого формата? Xls или xlsx ? Попробуй распаковывать его как архив, изменить содержимое, запаковать заново.
0
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
28.01.2017, 16:29  [ТС] 9
В том то и дело, что необходимо найти путь наименьшего сопротивления. Что бы я запустил программу, ввел данные, открыл эксель, посмотрел и пошел дальше. Сейчас я делаю следующим образом: импортирую в один файл (файл1.хлсх), потом переношу ссылкой данные в файл2.хлсх, который не изменится никак после записи данных в первый файл (только сами данные обновятся), отмечаю в этом файле какие-то другие данные, переношу эти другие данные обратно в файл1.хлсх ссылкой, откуда их уже читаю питоном. Как-то так. Я конечно понимаю, что это говнокод, но ничего лучше придумать не смог.
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
29.01.2017, 03:37 10
Не совсем понятно, что Вы хотите.
Вариант 1. У Вас есть книга Excel, содержащая несколько страниц с данными. Вам необходимо эти данные обработать и записать результат обработки на один из листов этой же книги. В этом случае, при использовании openpyxl, форматирование будет теряться, обойти это средствами пакета пока не возможно. Под windows, чтобы не терять форматирование нужно использовать pywin32, без вариантов.
Вариант 2. У Вас есть книга Excel, содержащая несколько страниц с данными. Вам необходимо эти данные обработать и записать результат обработки в новую книгу. Тогда постоянно переписывайте результирующую книгу, а для форматирования данных и построения графиков используйте возможности пакета openpyxl.

ЗЫ. Для второго варианта я использую связку xlrd и xlsxwriter, ИМХО меньше букв писать приходится
2
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
29.01.2017, 11:05  [ТС] 11
"при использовании openpyxl, форматирование будет теряться, обойти это средствами пакета пока не возможно" - собственно, это и нужно было понять. Спасибо. А при записи данных xlsxwriter форматирование тоже теряется? И еще, можете объяснить мне недалекому, с чем вообще это связано?
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
30.01.2017, 03:52 12
Цитата Сообщение от Balashow Посмотреть сообщение
А при записи данных xlsxwriter форматирование тоже теряется?
пакет xlsxwriter только создает книги Excel, с существующими файлами он не работает.
Цитата Сообщение от Balashow Посмотреть сообщение
с чем вообще это связано?
если кратко, то ХЗ.
Перечитал Ваш первый пост, а чем Вас matplotlib не устраивает, если Вы просто графики смотреть хотите.
1
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.01.2017, 16:41 13
Можно попробовать использовать COM через pypiwin32 если решение нужно только под Windows

Python
1
2
from win32com import client  # pypiwin32
# ...
0
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
30.01.2017, 21:43  [ТС] 14
В конце мне отчет еще делать, вот в эксель и вывожу. matplotlib устраивает, использую. Но, интересовало именно почему форматирование екселя сбивалось, и можно ли это исправить. Но сейчас вот решил не заморачиваться, и просто matplotlibом пользоваться.

Добавлено через 5 часов 0 минут
Цитата Сообщение от Avazart Посмотреть сообщение
Можно попробовать использовать COM через pypiwin32 если решение нужно только под Windows
Я, честно говоря, не очень понимаю. От слова совсем. Страшно, конечно, тупым показаться, но вообще ни слова не понял. Но да, мне под только винду. Буду благодарен за ссылку где бы понятней об этом почитать.
0
Эксперт С++
8482 / 6149 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.01.2017, 22:07 15
Цитата Сообщение от Balashow Посмотреть сообщение
Страшно, конечно, тупым показаться, но вообще ни слова не понял.
Вероятно вы такой и есть, если не можете даже по ключевым словам загуглить.
И в таком случае я ничем не могу вам помочь.
0
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
31.01.2017, 07:25 16
Цитата Сообщение от Balashow Посмотреть сообщение
мне под только винду. Буду благодарен за ссылку где бы понятней об этом почитать
Вот, на пример.
2
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
06.02.2017, 15:49  [ТС] 17
Спасибо
0
394 / 122 / 48
Регистрация: 26.10.2013
Сообщений: 734
07.02.2017, 01:48 18
Цитата Сообщение от Balashow Посмотреть сообщение
"при использовании openpyxl, форматирование будет теряться, обойти это средствами пакета пока не возможно" - собственно, это и нужно было понять. Спасибо. А при записи данных xlsxwriter форматирование тоже теряется? И еще, можете объяснить мне недалекому, с чем вообще это связано?
Форматирование теоюряется потому что каждая сущность текста несет в себе метаданные о своем форматировании, которые отвечают за то как именно должна выглядеть эта сущность (цвет, размер, шрифт). Например ворд применяет форматирование не к каждой букве, а к блокам текста, не исключено что вы можете выделить букву и назначить ей форматирование, просто это будет блок из одной буквы, в общем это не суть. Суть в том что вы работаете с Plain Text, у которого нет никакого форматирования, и пишите его же, поэтому при открытии файла форматирование "теряется" вообще оно становится по умолчанию. Кстати, вот думаю если найти каким именно способом это форматирование устанавливается, то попробовать вручную с ним поиграть и записать в файл, поймет ли редактор что это не просто текст?)

Добавлено через 3 минуты
Во, я вспомнил где я это видел, когда на делфи писал, сохранял в файл содержимое RichEdit и при открытии этого файла блокнотом было видно как задаются стили текста))
1
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 8
11.02.2017, 20:06  [ТС] 19
Вот. Теперь понятно все. Спасибо большое.
0
11.02.2017, 20:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2017, 20:06
Помогаю со студенческими работами здесь

Работа с данными в Excel
Доброй ночи. такая проблема,перерыл весь инет,но толком ничего не нашел. Следует создать...

работа с данными excel
Собственно цель написать некую программку которую можно будет переписывать под определенные нужды....

Работа с данными в Excel
Дан документ с таблицей k1.xlsx Дата Курс 01.01.2018 66,20 02.01.2018 ...

Работа с данными, считанными с Excel
Здравствуйте! Пожалуйста, помогите написать цикл (сумма) в соответствии с заданной формулой....

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

работа с данными Excel (OLE компонент)
в диалог встроен лист Excel (OLE компонент) пользователь вводит данные в таблицу (2 столбца и...

работа с текстовыми данными, использование файлов
Помогите, пожалуйста, написать программу.Вот само задание: var T: text; Описать процедуру...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru