Рубрики
Без рубрики

Как использовать OpenPyxl: Модуль Python для файлов Excel

Привет всем, Это мой первый блог, когда я подумал о том, какую тему я могу начать для своего первого блога, я … Tagged с Python, OpenPyxl, Основы, Excel.

Привет всем В

Это мой первый блог , когда я подумал о том, какую тему я могу начать для своего первого блога, я решил, что позволил мне пойти с OpenPyxl модуль Python для Excel Анкет

Сказав, что давайте начнем, прежде чем мы начнем:

Предварительные условия
  • Основные знания питона
  • Основные знания Excel

Пример Excel мы используем, как ниже:

Имя файла : sampledata.xlsx Лист1: Лист2:

Темы

  1. Установка
  2. Загрузка рабочей книги
  3. Работа с простынями
  4. Получение значений ячеек
  5. Получение нескольких значений
  6. Преобразование данных в структуры 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”