Автор оригинала: Pankaj Kumar.
Module Python OuterPyxl – это собственная библиотека для работы с файлами Excel. Мы можем прочитать файлы Excel, а также напишите файлы Excel.
1) Установка модуля OpenPyXL
Мы можем установить модуль OpenPyXL с помощью команды PIP.
$ pip install openpyxl
Pip install openpyxl.
2) Чтение файла Excel с помощью OpenPyXL
Я создал образец файла Excel (Records.xlsx) с тремя листами. Данные присутствуют в первых двух листах.
Openpyxl пример листа Excel
Мы будем использовать этот файл Excel, чтобы посмотреть на некоторые примеры для чтения данных из листа Excel.
1. Получение названий листов из файла Excel
import openpyxl excel_file = openpyxl.load_workbook('records.xlsx') # sheet names print(excel_file.sheetnames)
Выход:
['Employees', 'Cars', 'Numbers']
листы
Переменная Возвращает список названий рабочих листов в рабочей книге. Имена возвращаются в порядке рабочих листов в файле Excel.
2. Получение специфического листа из файла Excel
Мы можем получить доступ к конкретному листу, используя переменную индекс с объектом Workbook.
employees_sheet = excel_file['Employees'] print(type(excel_file)) print(type(employees_sheet)) currently_active_sheet = excel_file.active
Выход:
Если вы хотите получить доступ к текущему активному листу, используйте Активный
Собственность рабочей книги.
3. Чтение значения ячейки из листа Excel
Есть два способа получить значение клетки с листа Excel. Мы можем получить объект сотового элемента, используя функцию Cell (), или мы можем получить его, используя индекс клетки.
cell_obj = employees_sheet.cell(row=1, column=1) print(type(cell_obj)) print(f'Employees[A1]={cell_obj.value}') # second way print(f'Employees[A1]={employees_sheet["A1"].value}')
Выход:
Employees[A1]=EmpID Employees[A1]=EmpID
4. Общее количество рядов и столбцов в листе Excel
Мы можем получить общее количество строк и столбцов, используя max_row
и max_column
свойства рабочего листа.
print(f'Total Rows = {employees_sheet.max_row} and Total Columns = {employees_sheet.max_column}')
Выход:
Total Rows = 4 and Total Columns = 3
5. Строка печати заголовка листа Excel
header_cells_generator = employees_sheet.iter_rows(max_row=1) for header_cells_tuple in header_cells_generator: for i in range(len(header_cells_tuple)): print(header_cells_tuple[i].value)
Выход:
EmpID EmpName EmpRole
Функция ITER_ROWS () генерирует ячейки из рабочего листа по строке. Мы можем использовать его, чтобы получить клетки из определенного ряда.
6. Печать всех значений из столбца
for x in range(1, employees_sheet.max_row+1): print(employees_sheet.cell(row=x, column=1).value)
Выход:
EmpID 1 2 3
7. Печать всех значений из строки
for x in range(1, employees_sheet.max_column+1): print(employees_sheet.cell(row=2, column=x).value)
Выход:
1 Pankaj CEO
8. Диапазон чтения клеток от листа Excel
Мы можем пройти ассортимент ячеек для чтения нескольких ячеек одновременно.
cells = employees_sheet['A2':'C3'] for id, name, role in cells: print(f'Employee[{id.value}, {name.value}, {role.value}]')
Выход:
Employee[1, Pankaj, CEO] Employee[2, David Lee, Editor]
9. Итализация клетки по рядам
for row in employees_sheet.iter_rows(min_row=2, min_col=1, max_row=4, max_col=3): for cell in row: print(cell.value, end="|") print("")
Выход:
1|Pankaj|CEO| 2|David Lee|Editor| 3|Lisa Ray|Author|
Аргументы, переданные функции iter_rows (), создают двумерную таблицу, из которой значения прочитаны, по строке. В этом примере значения читаются между A2 и C4.
10. Итализаторы клетки по столбцам
for col in employees_sheet.iter_cols(min_row=2, min_col=1, max_row=4, max_col=3): for cell in col: print(cell.value, end="|") print("")
Выход:
1|2|3| Pankaj|David Lee|Lisa Ray| CEO|Editor|Author|
Функция Iter_Cols () такая же, как iter_rows (), за исключением того, что значения читают столбца.
3) Написание файла Excel с помощью OpenPyXL
В этом разделе мы посмотрим несколько примеров записи файлов Excel и данных клеток.
1. Написание файла Excel с помощью OpenPyXL
from openpyxl import Workbook import datetime excel_file = Workbook() excel_sheet = excel_file.create_sheet(title='Holidays 2019', index=0) # creating header row excel_sheet['A1'] = 'Holiday Name' excel_sheet['B1'] = 'Holiday Description' excel_sheet['C1'] = 'Holiday Date' # adding data excel_sheet['A2'] = 'Diwali' excel_sheet['B2'] = 'Biggest Indian Festival' excel_sheet['C2'] = datetime.date(year=2019, month=10, day=27).strftime("%m/%d/%y") excel_sheet['A3'] = 'Christmas' excel_sheet['B3'] = 'Birth of Jesus Christ' excel_sheet['C3'] = datetime.date(year=2019, month=12, day=25).strftime("%m/%d/%y") # save the file excel_file.save(filename="Holidays.xlsx")
Выход:
OpenPyXL Написать файл Excel
2. Обновление сотовой стоимости
Мы можем либо использовать индекс ячейки или использовать объект ячейки для установки значения. Изменим некоторые значения в файле Excel, созданные в последнем примере.
import openpyxl excel_file = openpyxl.load_workbook('Holidays.xlsx') excel_sheet = excel_file['Holidays 2019'] # using index excel_sheet['A2'] = 'Deepawali' # using cell object excel_sheet.cell(row=2, column=2).value = 'Biggest Indian Festival for Hindus' excel_file.save('Holidays.xlsx')
Выход:
Opennyxl Обновить значение ячейки
3. Добавление нескольких значений в лист Excel
Мы можем использовать функцию Append (), чтобы добавить последовательность значений в нижнюю часть рабочего листа.
holiday_rows = ( ('Black Friday', 'Fourth Thursday of November, Shopping Day', '11/29/19'), ('Holi', 'Festival of Colors', '3/20/19') ) for row in holiday_rows: excel_sheet.append(row) excel_file.save('Holidays.xlsx')
Выход:
Opennyxl добавить несколько строк в файл Excel
4) Удаление рядов и колонн из листа Excel
Мы можем использовать функции delete_cols () и delete_rows () для удаления столбцов и строк из листа Excel.
import openpyxl excel_file = openpyxl.load_workbook('Holidays.xlsx') excel_sheet = excel_file['Holidays 2019'] # delete column excel_sheet.delete_cols(idx=2) # B=2 # delete row excel_sheet.delete_rows(idx=2, amount=2) # rows 2,3 are deleted excel_file.save('Holidays.xlsx')
IDX Параметр предоставляет индекс строк и столбцов для удаления. Если мы хотим удалить несколько соседних строк и столбцов, мы можем предоставить аргумент суммы.
5. Заключение
Модуль Python OuterPyXL является идеальным выбором для работы с листами Excel. Мы также можем добавить изображения в лист Excel с помощью библиотеки подушки с ней. Но, не защищает нас против квадратичного взрыва или миллиарда смех XML атаки. Итак, если вы получаете значения от пользователя и сохраняете его, то попробуйте подтвердить и санировать его.
6) дальнейшие чтения
- Pandas Read_Excel () – Чтение файла Excel в Python
- Модули Python
- Учебник Python