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')