Python の基本: Excel テーブルを処理する openpyxl モジュール

Python にはテーブルを処理できるモジュールがたくさんあります。openpyxl モジュールはその 1 つにすぎず、最も単純なモジュールでもあります。

準備

  • 1つのExcelテーブルドキュメント、あなたが学んだ同級生のMySQLは、ワークブックと呼ばれるデータベースとして理解できます。
  • データベースには、Sheet1、Sheet2、Sheet3 などの複数のテーブルが含まれています。これはワークシートと呼ばれます。
  • ワークシートには複数の行 (行)、列 (列)、およびセル (セル) があります

1. データ読み込み

import os
import openpyxl

作業パスを指定

path = r"C:\Users\asuka\Desktop"
os.chdir(path)  # 修改工作路径

基本属性取得

#1.0读取工作簿的表名

workbook = openpyxl.load_workbook('99.xlsx')	    # 返回一个workbook数据类型的值
print(workbook.sheetnames)	                        # 打印Excel表中的所有表

# 运行结果:列表
['Sheet1', 'Sheet2', 'Sheet3']

#2.1使用workbook['Sheet1']获取指定sheet表

sheet = workbook['Sheet1']  # 获取指定sheet表
print(sheet)

# 2.2使用workbook.active获取活动表
sheet = workbook.active
print(sheet)

#3.1使用sheet.dimensions获取表格的尺寸
####这里所说的尺寸大小,指的是excel表格中的数据有几行几列

sheet = workbook['Sheet1']
print(sheet.dimensions)     # 获取表格的尺寸大小

运行结果:
A1:B7

セル内のデータを取得する

方法1:座標の指定方法

sheet = workbook['Sheet1']
cell1 = sheet['A2']         # 获取A2单元格的数据
cell2 = sheet['B7']         # 获取B7单元格的数据
# cell2 = sheet['B7'].value		# 另一种写法

print(cell1.value,cell2.value)

方法 2: 行と列の方法を指定し、

それがsheet.cell(row=, column=)方法です

cell1 = sheet.cell(row=1,column=1)         # 获取第1行第1列的数据
cell2 = sheet.cell(row=3,column=2)         # 获取第3行第2列的数据
print(cell1.value,cell2.value)

セルの座標を取得する

 sheet = workbook['Sheet1']
 cell = sheet.cell(row=3, column=2)  # 获取第3行第2列的数据
 print(cell.value, cell.row, cell.column, cell.coordinate)

範囲内のデータを取得する

1行1列のデータを取得する場合は1層のforループを使用し、複数行複数列で間隔を指定したデータを取得する場合は2層のforループを使用します

単一行および単一列のデータを取得する

workbook = openpyxl.load_workbook('99.xlsx')  # 返回一个workbook数据类型的值
sheet = workbook.active  # 获取活动表
print('当前活动表是:')
print(sheet)

cell = sheet['A1:A7']  # 获取A1到A7的数据

print(cell)

# 打印A1到A7的数据
for i in cell:
    for j in i:
        print(j.value)

指定した行と列のデータを取得する

获取一行数据
cell = sheet['4']  # 获取第4行的数据
# 打印A4到B4的数据
for i in cell:
    print(i.value)

2 列のデータを取得する

workbook = openpyxl.load_workbook('99.xlsx')  	#返回一个workbook数据类型的值
sheet = workbook.active  	#获取活动表
print('当前活动表是:' + str(sheet))

cell = sheet['A:B']  	 	#获取AB列的数据

# 打印AB列数据
for i in cell:
    for j in i:
        print(j.value)

2 つの列の結果が一緒に出力されるため、読みにくくなります。

行と列で値を取得する

行単位で値を取得

for i in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=2):
    for j in i:
        print(j.value)

#运行结果:
# 张三
# 74
# 李四
# 41
# 王五
# 56
# 赵六
# 12

列ごとに値を取得

for i in sheet.iter_cols(min_row=2, max_row=5, min_col=1, max_col=2):
    for j in i:
        print(j.value)

#运行结果:
# 张三
# 李四
# 王五
# 赵六
# 74
# 41
# 56
# 12

2. データ書き込み

新しいエクセルを作成

import os
import openpyxl

path = r"D:\code\python\08.模块"
os.chdir(path)  # 修改工作路径

workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = 'pokes01'   #创建表并指定名称,如果不写默认创建表名sheet
workbook.save('1.xlsx')     #保存为1.xlsx的文档

セルを変更し、Excel に名前を付けて保存

workbook = openpyxl.load_workbook('1.xlsx')  # 返回一个workbook数据类型的值
sheet = workbook.active  # 获取活动表
sheet['A1'] = 'name'
workbook.save('test.xlsx')

有効なデータを挿入する

import os
import openpyxl

path = r"D:\code\python\08.模块"
os.chdir(path)  # 修改工作路径

workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值
sheet = workbook.active  # 获取活动表
print('当前活动表是:' + str(sheet))

data = [
    ['素子',23],
    ['巴特',24],
    ['塔奇克马',2]
]
for row in data:
    sheet.append(row)   # 使用append插入数据,追加数据
workbook.save('test.xlsx')

おすすめ

転載: blog.csdn.net/annita2019/article/details/128868852