Привет всем В
Это мой первый блог , когда я подумал о том, какую тему я могу начать для своего первого блога, я решил, что позволил мне пойти с OpenPyxl
модуль Python для Excel Анкет
Сказав, что давайте начнем, прежде чем мы начнем:
Предварительные условия
- Основные знания питона
- Основные знания Excel
Пример Excel мы используем, как ниже:
Имя файла : sampledata.xlsx Лист1: Лист2:
Темы
- Установка
- Загрузка рабочей книги
- Работа с простынями
- Получение значений ячеек
- Получение нескольких значений
- Преобразование данных в структуры Python
Установка OpenPyxl
Запустите приведенный ниже код в вашем терминале Python для установки OpenPyxl
Анкет Вы можете установить Во всем мире или в виртуальная среда , Я обычно предпочитаю виртуальную среду
pip install openpyxl
После установки нам необходимо импортировать в наш код Python
(Создайте новый Python File .py)
import openpyxl
Загрузка рабочей книги
Давайте напишем ниже код, чтобы загрузить наш первый Excel
# loading workbook from openpyxl import load_workbook # NOTE: loading the excel we need wb = load_workbook(filename='sampleData.xlsx') print(wb)
В приведенном выше коде импортирован load_workbook
Метод для чтения файла Excel и хранит его в переменной “WB”
Примечание Файл, к которому мы обращаемся, должен быть в той же папке, над которым мы работаем.
Выход:
Работа с простынями
Ниже код есть логика для:
- Принесите имена листов из Excel мы читаем
- Показывает, какой лист в настоящее время активен
- Активировать определенные листы либо с помощью индекса, либо с помощью листа
# Working with Sheets from openpyxl import load_workbook # NOTE: loading the excel we need wb = load_workbook(filename='sampleData.xlsx') # NOTE: get the sheetnames from the excel we read print(wb.sheetnames) # OUTPUT: ['Sheet1', 'Sheet2'] # NOTE: shows which sheet is currently active print(wb.active) # OUTPUT:# NOTE: we can assign which sheet to be activated, it starts from left to right from the index 0,1 so on... wb.active = 0 print(wb.active) # OUTPUT: wb.active = 1 print(wb.active) # OUTPUT: # NOTE: above we saw we can access via index location, now lets access the sheet with the sheet name sheet = wb['Sheet2'] print(sheet) # OUTPUT: print(sheet.title) # OUTPUT: Sheet2
Получение значений ячеек
Ниже код есть логика для:
- Указать, какой лист и номер ячейки нам нужны для получения данных
- Индекс строки извлечения, индекс столбцов, значение ячейки и ячейки координаты
# Retrieving Cell Values from openpyxl import load_workbook # NOTE: loading the excel we need wb = load_workbook(filename='sampleData.xlsx') sheet = wb['Sheet1'] # NOTE: from active sheet we are trying to fetch the value from cell B3 cell_coordinates = sheet['B3'] # NOTE: fetch value, row & column for the cell coordinates print(cell_coordinates.value) # OUTPUT: Jojo print(cell_coordinates.row) # OUTPUT: 3 print(cell_coordinates.column) # OUTPUT: 2 print(cell_coordinates.coordinate) # OUTPUT: B3 # NOTE: What if we fetch the empty cell value? print(sheet['B9'].value) # OUTPUT: None # NOTE: Return Value using cell print(sheet.cell(row=2, column=2).value) # OUTPUT: Shijo
Получение нескольких значений
Ниже код есть логика для:
- Принесите данные для конкретного столбца
- Диапазон избранного объекта столбца с индексом/без индекса
- ОБЪЕКТ ПОЛУЧЕНИЯ
- Значения по составлениям строки и столбца
# Retrieving Multiple Values from openpyxl import load_workbook # NOTE: loading the excel we need wb = load_workbook(filename='sampleData.xlsx') sheet = wb['Sheet2'] # NOTE: fetches all the 'A' colum that has data # OUTPUT: (, | , | , | , | , | ) print(sheet['A']) # NOTE: fetches range of columns without index print(sheet['A:C']) ''' OUTOUT: (( | , | , | , | , | , | ), ( | , | , | , | , | , | ), ( | , | , | , | , | , | )) ''' # NOTE: fetches range of columns with index print(sheet['1:3']) ''' OUTPUT: (( | , | , | ), ( | , | , | ), ( | , | , | )) ''' # fetch row & column objects for row in sheet.rows: print(row) ''' OUTPUT: ( | , | , | ) ( | , | , | ) ( | , | , | ) ( | , | , | ) ( | , | , | ) ( | , | , | ) ''' for col in sheet.columns: print(col) ''' OUTPUT: ( | , | , | , | , | , | ) ( | , | , | , | , | , | ) ( | , | , | , | , | , | ) ''' # Show values only for row in sheet.iter_rows(values_only=True): print(row) ''' OUTPUT: ('id', 'fruit', 'quantity') (1, 'Apple', 2) (2, 'Orange', 5) (3, 'Pineapple', 3) (4, 'Banana', 6) (5, 'Mango', 1) ''' for col in sheet.iter_cols(values_only=True): print(col) ''' OUTPUT: ('id', 1, 2, 3, 4, 5) ('fruit', 'Apple', 'Orange', 'Pineapple', 'Banana', 'Mango') ('quantity', 2, 5, 3, 6, 1) ''' |
Преобразование данных в структуры Python
# Converting data into Python structures import json from openpyxl import load_workbook # NOTE: loading the excel we need wb = load_workbook(filename='sampleData.xlsx') sheet = wb['Sheet2'] # empty dictionary to keep values from excel books = {} for row in sheet.iter_rows(min_row=2, min_col=1, values_only=True): book_id = row[0] book = { 'Fruit': row[1], 'Qty': row[2] } books[book_id] = book print(json.dumps(books, indent=3)) ''' OUTPUT: { "1": { "Fruit": "Apple", "Qty": 2 }, "2": { "Fruit": "Orange", "Qty": 5 }, "3": { "Fruit": "Pineapple", "Qty": 3 }, "4": { "Fruit": "Banana", "Qty": 6 }, "5": { "Fruit": "Mango", "Qty": 1 } } '''
Если вы любите изучать больше, используйте это OpenPyxl документация
Проверьте мой GitHub исходный код
Оригинал: “https://dev.to/shijoshaji/how-to-use-openpyxl-a-python-module-for-excel-files-1o85”