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

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

17.07.2016, 15:06. Показов 17963. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru