openpyxl を使用してシートを複数のシートに分割する

        この章では、openpyxl のアプリケーション、つまりシートを複数のシートに分割する方法を紹介します。これは 200 行の乱雑なテーブルです。目標は、テーブルの各クラスをシートに整理することです。

        この種の問題に対処するために openpyxl を使用するのはより複雑です。1 つのアイデアは、まずデータを辞書に入れ、次に辞書のさまざまなキーと値のペアに従って、そのデータをさまざまなシートに保存することです。段階的に見ていきましょう。まず、各行のデータをリストに取得します。

import openpyxl
file = openpyxl.load_workbook(r"D:\临时\python试验\openpyxl\把文件拆分成多个sheet表.xlsx")
sheet_fd = file['Sheet1']          # 选择工作表

for row in sheet_fd.iter_rows(2,sheet_fd.max_row,1,sheet_fd.max_column,values_only=True):
    row_ls = [i for i in row]      # 每行生成列表
    print(row_ls)

        次に、リストの最初の要素が辞書のキーとして使用され、もう一方の要素が辞書の値の 1 つとしてリストを形成します。

import openpyxl
file = openpyxl.load_workbook(r"D:\临时\python试验\openpyxl\把文件拆分成多个sheet表.xlsx")
sheet_fd = file['Sheet1']

d = {}
for row in sheet_fd.iter_rows(2,sheet_fd.max_row,1,sheet_fd.max_column,values_only=True):
    row_ls = [i for i in row]
    jian = row_ls[0]        # 作为字典的键
    zhi = row_ls[1:]        # 除了第一个之外的元素组成列表作为字典的值
    d[jian] = d.get(jian,[]) + [zhi]        # !重点

print(d)

        10 行目 d.get(jian,[]) は、辞書 d 内のキー jian を取得することを意味し、キー jian が辞書に存在する場合は、キーに対応する値を返し、キー jian が辞書に存在しない場合は、キーに対応する値を返します。 、空のリストを返します。

        d.get(jian,[]) + [zhi] は、戻り値に要素 (list zhi) を追加することを意味します。[] を追加すると、[zhi] は [ ['Chen Jie になるため、zhi には [] を追加する必要があることに注意してください。 '、47、49、29、5]] の場合、+ 記号は拡張と同等で、リスト全体ではなくリスト内の要素を追加します。

import openpyxl

file = openpyxl.load_workbook(r"D:\临时\python试验\openpyxl\把文件拆分成多个sheet表.xlsx")
sheet_fd = file['Sheet1']

d = {}
for row in sheet_fd.iter_rows(2,sheet_fd.max_row,1,sheet_fd.max_column,values_only=True):
    row_ls = [i for i in row]
    jian = row_ls[0]        # 作为字典的键
    zhi = row_ls[1:]        # 除了第一个之外的元素组成列表作为字典的值
    d[jian] = d.get(jian,[]) + [zhi]

new_file = openpyxl.Workbook()

for key,value in d.items():
    sheet = new_file.create_sheet(key)        # 创建键对应的文件
    sheet.append(['姓名','语文','数学','英语','综合科'])   # 写入表头
    for n_row in value:
        sheet.append(n_row)       # 写入数据行

new_file.remove(new_file['Sheet'])      # 移除创建new_file时默认产生的Sheet
new_file.save(r"D:\临时\python试验\openpyxl\一表拆成多表.xlsx")

        この記事の Excel ファイル: リンク: https://pan.baidu.com/s/1RkLCCXuWfPz6rYcnuUJrrw?pwd=z3u1 
抽出コード: z3u1

おすすめ

転載: blog.csdn.net/m0_71559726/article/details/130367549