Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/92: Рейтинг темы: голосов - 92, средняя оценка - 4.78
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173

Работа с данными файлов Excel .xlsx. Чтение и вывод данных с использованием модуля openpyxl

17.07.2016, 15:06. Показов 17839. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пытаюсь освоить работу чтения и записи данных в таблицы Excel, используя Python и его модуль openpyxl. При попытке записи или чтения из файла .xlsx IDLE сообщает, что данные являются текстом:
Python
1
2
3
4
Traceback (most recent call last):
  File "E:\Sys\Program Files\Python 2.7.8\HCM", line 4, in <module>
    ws1['B2']=1
TypeError: list indices must be integers, not str
вот примерный код:
Python
1
2
3
4
import openpyxl
wb = openpyxl.load_workbook(filename='E:/Adjustment factor.xlsx')
ws1=["u'"]
c= ws1['D3']
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2016, 15:06
Ответы с готовыми решениями:

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

Работа с данными файлов Excel .xlsx.
Здравствуйте! А у меня тоже вопрос по теме, если позволите. При записи питоном каких либо данных в уже существующий экселевский файл, все...

Чтение Excel файлов с openpyxl и xlrd
Моя задача состоит в следующем Я должен в папке с Excel файлами перебрать все их листы и найти ячейку со словом ИТОГО, из соседней ячейки...

9
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
17.07.2016, 17:24
Цитата Сообщение от SKY_SHY Посмотреть сообщение
вот примерный код:
Лучше именно тот, на котором у вас появляется ошибка.
Цитата Сообщение от SKY_SHY Посмотреть сообщение
ws1=["u'"]
создаем переменную список из одного элемента.
Цитата Сообщение от SKY_SHY Посмотреть сообщение
c= ws1['D3']
пытаемся использовать ее как словарь.

Удивляемся, почему у нас ничего не получается.
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
17.07.2016, 18:03  [ТС]
Может и так, но я делал как было в этой статье:
http://www.pvsm.ru/python/66788
Как указано в документации если запустить команду:
Python
1
print wb.get_sheet_names()
то выведется список листов, находящихся в файле или как угодно в книге Excel.
Т.е. у меня в книге лист u' называется "density" как я его вижу при открытии xlsx-файла.
Я к тому что запустив вышеуказанную команду python вывел лист с названием "density" как u'

Вообще это происходит со всеми файлами Excel.
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
17.07.2016, 18:10
Повторюсь - именно тот кусок кода в студию, на котором возникает ошибка.
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
17.07.2016, 18:23  [ТС]
А он у меня весь. Вот в ячейке D3 of the Sheet 1 значение - 1. Я хочу его вывести. У меня ошибка что все значения в листе д.б. integer. Формат ячеек в Excel - числовой.

Python
1
2
3
4
5
6
import openpyxl
wb = openpyxl.load_workbook(filename='E:/raz.xlsx')
print (wb.get_sheet_names())
ws1=["u'"]
c= ws1['D3']
print c
Вложения
Тип файла: xlsx raz.xlsx (8.4 Кб, 7 просмотров)
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
17.07.2016, 18:26
SKY_SHY, документацию читали ? У вас одна очевидная ошибка - переменные wb и ws1 не связаны вообще.
1
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
17.07.2016, 18:48  [ТС]
Python
1
2
3
4
5
6
7
import openpyxl
import openpyxl
wb = openpyxl.load_workbook(filename='E:/raz.xlsx')
print (wb.get_sheet_names())
ws1=wb["density"]
c= ws1['D3'].value
print c
Работая с другим файлом, где названия листов уже даны - теперь мне Python говорит, что листа с таким названием не существует. Менял название на другие, сохранив предварительно файл при этом - не помогает. Формат ячеек - числовой.
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
17.07.2016, 19:01
Лучший ответ Сообщение было отмечено Marinero как решение

Решение

открыл ваш файлик с сообщения выше.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
In [1]: import openpyxl
 
In [2]: wb = openpyxl.load_workbook(filename='raz.xlsx')
 
In [3]: wb.get_sheet_names()
Out[3]: ['Лист1', 'Лист2', 'Лист3']
 
In [4]: ws = wb['Лист1']
 
In [5]: ws
Out[5]: <Worksheet "Лист1">
 
In [6]: ws['D3']
Out[6]: <Cell Лист1.D3>
 
In [7]: ws['D3'].val()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-8b0688d35f12> in <module>()
----> 1 ws['D3'].val()
 
AttributeError: 'Cell' object has no attribute 'val'
 
In [8]: ws['D3'].value
Out[8]: 1
0
2 / 2 / 1
Регистрация: 15.10.2015
Сообщений: 173
17.07.2016, 19:32  [ТС]
Правда файл я поменял, и там Лист1 назывался по-другому, но не важно.
Хорошо, тогда я не понимаю, почему у вас печатаются названия листов как они есть, у меня ерунда:
[u'density', u'1morn', u'1daytime', u'1middle', u'1evening', u'2morn', u'2dayt', u'2middle', u'2evening', u'\u041b\u0438\u0441\u04424', u'\u041b\u0438\u0441\u04422']
Предупреждение пользователя:
Data Validation extension is not supported and will be removed
И какое расширение валидации данных не поддерживается и будет удалено, что это значит?
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
17.07.2016, 19:37
Цитата Сообщение от SKY_SHY Посмотреть сообщение
Хорошо, тогда я не понимаю, почему у вас печатаются названия листов как они есть, у меня ерунда:
[u'density', u'1morn', u'1daytime', u'1middle', u'1evening', u'2morn', u'2dayt', u'2middle', u'2evening', u'\u041b\u0438\u0441\u04424', u'\u041b\u0438\u0441\u04422']
больная тема под названием питон 2 и юникод. Хотите как есть - преобразовывайте их или используйте 3 питон.
Цитата Сообщение от SKY_SHY Посмотреть сообщение
Предупреждение пользователя:
Data Validation extension is not supported and will be removed
И какое расширение валидации данных не поддерживается и будет удалено, что это значит?
https://openpyxl.readthedocs.i... ation.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2016, 19:37
Помогаю со студенческими работами здесь

Изменение xlsx файла с использованием библиотеки openpyxl
Доброго времени суток, всем, кто зашел сюда! Недавно я написал бота, который принимает текстовые сообщения и добавляет и их в эксель...

Чтение Файлов с использованием модуля pickle
Всем привет, помогите с Лабороторной: Написать программу, реализующую хранение информации о кредитах (на основе списков и многоуровневых...

Вывод на экран списка имен файлов в каталоге модуля с использованием Spring beans
Здравствуйте, ребята! Я пробую разобраться в принципах работы Spring-a... По заданию нужно реализовать вывод на экран список содержимого...

Чтение с использованием ACE.OLEDB из xlsx
Читаю из xlsx данные с помощью ACE.OLEDB.12.0 OleDbCommand command = new OleDbCommand(commandText, connection); OleDbDataReader...

Работа с данными Excel и вывод результатов на сайт
Исходные данные: Программа написанная на VBA(excel) и модулях Python для инженерных расчетов. Eсть шаблон EXCEL с расчетами. Задача:...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru