\

Pythonのライブラリであるxlwingsを使用してExcelのシート名を変更する方法について説明します。この記事では、特定のシートの名前を変更し、そのシートの特定の列の合計値を名前に追加する方法を示します。

まず、xlwingsとpandasをインポートします。次に、Excelブックを開き、すべてのシート名を取得します。各シートに対して、シートの全範囲をpandasのデータフレームに変換します。そして、最初の列(列A)を取得し、その列の数値を合計します。最後に、その合計値をシート名に追加します。

import xlwings as xw
import pandas as pd

app = xw.App(visible=False)  # ブックを表示せずに開く
wb = xw.Book('Book1.xlsx')
sheet_names = wb.sheets

for x in sheet_names:
    # シート全体のpandasデータフレームを取得
    sheet1 = wb.sheets[x].used_range.value
    df = pd.DataFrame(sheet1)

    # 列Aを見つける
    colA = df.iloc[:,0]

    # 列Aの値を数値に変換し、非数値の場合はNaNを返す
    colA_numeric = pd.to_numeric(colA, errors='coerce')

    # colAの合計を計算
    sum_floats = colA_numeric.sum(skipna=True)

    # 合計をシート名に追加
    wb.sheets[x].name = wb.sheets[x].name + ' ('+str(sum_floats)+')'

wb.save()
wb.close()
app.quit()

このコードを実行すると、各シートの名前が「シート名 (列Aの合計)」の形式に変更されます。ただし、このスクリプトを複数回実行すると、シート名が「Sheet 1 (30.0) (30.0)」のようになる可能性があるため、シート名を取得する方法を変更することでこれを避けることができます。

以上がPythonとxlwingsを使用してExcelのシート名を変更する方法についての説明です。この情報が役立つことを願っています。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です