|
0 / 0 / 0
Регистрация: 03.02.2022
Сообщений: 2
|
|
Работа с excel26.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
|
|
| 26.07.2022, 06:32 | |
|
Ответы с готовыми решениями:
3
Работа с документами Excel без Microsoft.Office.Interop.Excel Работа с Excel через Microsoft.Office.Interop.Excel Работа с Excel (нет доступа к пространству имен Excel) |
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|
| 26.07.2022, 06:38 | |
|
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
|
|
|
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
|
|||||||
| 26.07.2022, 07:39 | |||||||
|
if (sheet_forma[colons + str(i)].value != sheet_zap[colons + str(i)].value) and (sheet_forma[colons + str(i)].value !='') : это строка и Вы пытаетесь обратиться к элементу строку по индексу, который не является целым числом. Вот упрощенный пример того же самого поведения
выведите значения всех элементов этой строки кода
0
|
|||||||
| 26.07.2022, 07:39 | |
|
Помогаю со студенческими работами здесь
4
Работа с Excel. Суть: Если номер строки в Excel четный тогда объеденяем эту ячейку с последующей. Экспорт в Excel: Прекращена работа программы "Microsoft Excel" Работа с Excel и "висячий процесс" EXCEL Работа с excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты 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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|