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

Работа с excel

26.07.2022, 06:32. Показов 2611. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, имеется следующая задача, имеются две таблицы, одна является эталоном (чистой формой), в которой помечены обязательные поля для заполнения "*", а есть заполненная таблица. Таблицы из нескольких листов. Нужно сравнить две таблицы, и вывести сообщения какие поля не заполнены. Снизу приведена попытка это реализовать, но возникла ошибка. Может кто подсказать, или предложить более действенный метод. Заранее спасибо.


from openpyxl import load_workbook
import openpyxl

def zap_table(colons, x, page):
### таблица с исходной формой
forma = load_workbook(filename="C:/Users/No_Name/Documents/test_py/forma.xlsx")
### заполненная таблица
zap = load_workbook(filename="C:/Users/No_Name/Documents/test_py/zap.xlsx")

sheet_forma = page
sheet_zap = page

if (sheet_forma[colons + str(i)].value != sheet_zap[colons + str(i)].value) and (sheet_forma[colons + str(i)].value !='') and (sheet_forma[colons + str(i)].value =='*') :
print (sheet_forma[colons+ str(i)])
print ('поле', colons, i , ' заполнено')
print ('B1')
elif (sheet_forma[colons + str(i)].value ==''):
print(1)
print ('пустое поле')
elif (sheet_forma[colons + str(i)].value == sheet_zap[colons + str(i)].value):
print(2)
print ('поле не заполнено')
else:
print(3)
print('error')



wb = openpyxl.load_workbook('C:/Users/No_Name/Documents/hpds.xlsx')
page_arry= wb.get_sheet_names()

colons_spisok=['A','B','C','D','E','F','G','H','I','J', 'K','L','M','N','O','P','Q','R','S','T', 'U','V','W','X','Y','Z']

y=0
for f in range (0, len(page)):
page=str(page_arry[y])
y=y+1
for i in range(0, len(colons_spisok)):
colons=colons_spisok[i]
for x in range(0,25):
zap_table(colons, x, page)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.07.2022, 06:32
Ответы с готовыми решениями:

Работа с документами Excel без Microsoft.Office.Interop.Excel
всем добрый день все дело в том что для своих программ я использую БД Excel но! однако не все устанавливают на компьютере Office, да и...

Работа с Excel через Microsoft.Office.Interop.Excel
Необходимо реализовать програмку взаимодействующую с Excel в режиме реального времени. Проблем несколько: 1. Как сделать так,...

Работа с Excel (нет доступа к пространству имен Excel)
Здравствуйте! У меня проблема в том, что я делаю все так как там, но выдает ошибку в строчках на слова Excel, например: ...

3
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
26.07.2022, 06:38
Цитата Сообщение от _TiMOX_ Посмотреть сообщение
Снизу приведена попытка это реализовать, но возникла ошибка.
ошибку Вы нам, конечно, не скажите, потому что это было бы слишком просто?..
0
0 / 0 / 0
Регистрация: 03.02.2022
Сообщений: 2
26.07.2022, 07:18  [ТС]
Приношу извинения, вот сообщение об ошибки

C:\Users\No_name\AppData\Local\Programs\ Python\Python310\lib\site-packages\openpyxl\worksheet\_reader.py:3 12: UserWarning: Data Validation extension is not supported and will be removed
warn(msg)
C:\Users\No_name\Documents\12AA.py:39: DeprecationWarning: Call to deprecated function get_sheet_names (Use wb.sheetnames).
stran= wb.get_sheet_names()
Traceback (most recent call last):
File "C:\Users\No_name\Documents\12AA.py" , line 51, in <module>
zap_table(colons, x, page)
File "C:\Users\No_name\Documents\12AA.py" , line 18, in zap_table
if (sheet_forma[colons + str(i)].value != sheet_zap[colons + str(i)].value) and (sheet_forma[colons + str(i)].value !='') :
TypeError: string indices must be integers
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
26.07.2022, 07:39
Цитата Сообщение от _TiMOX_ Посмотреть сообщение
TypeError: string indices must be integers
одно из значений в строке
if (sheet_forma[colons + str(i)].value != sheet_zap[colons + str(i)].value) and (sheet_forma[colons + str(i)].value !='') :

это строка и Вы пытаетесь обратиться к элементу строку по индексу, который не является целым числом.

Вот упрощенный пример того же самого поведения

Python
1
2
3
a = 'string'
idx = "x"
print(a[idx])
Добавлено через 47 секунд
выведите значения всех элементов этой строки кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.07.2022, 07:39
Помогаю со студенческими работами здесь

Большая работа с Excel (передача в него данных, построение графиков, дозапись, создание нового файла Excel)
Всем участниками большой привет. Снова нужна помощь. Что имеем: -Имеем форму во вложении. на ней есть 30 нужных нам текстбоксов,...

Работа с Excel. Суть: Если номер строки в Excel четный тогда объеденяем эту ячейку с последующей.
Здравствуйте. Помогите, пожалуйста .Я вот в Delphi осуществляю работу с документов в Excel, как я могу записать, чтобы выполнялся алгоритм:...

Экспорт в Excel: Прекращена работа программы "Microsoft Excel"
Файл сохраняется успешно, но поле строки excelApp.Quit(); Появляется окно ошибки Excel: Прекращена работа программы &quot;Microsoft...

Работа с Excel и "висячий процесс" EXCEL
Доброго времени суток. Помогите решить следующие проблемы. Создаю процесс Excel и создаю рабочую книгу: try {// Присоединение к...

Работа с excel
Подскажите кодом решение: Есть переменная типа TstringList, в нее помещается информация. Затем мне нужно проверить есть ли эта информация...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты 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 и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru