0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでExcelの数式や関数を削除し、データを保持する方法

Posted at

Excelの表を分析する際、さまざまな数式や関数を使ってデータを計算し、追加の情報を得ることがあります。しかし、分析結果を表示、共有、再利用する際には、数式を含むセルを静的な値に変換して、データを簡略化し、計算結果が変更されないように保護し、データの移植性を向上させたい場合もあります。Pythonを利用すれば、数式や関数を一括で削除しつつ、データを変更せずに保持することが簡単に実現できます。本記事では、Pythonコードを使用してExcelセル内の数式を一括で削除し、その計算結果を保持する方法を紹介します。

本記事で使用する方法では、Spire.XLS for Pythonを使用します。PyPIからインストール可能です:pip install spire.xls

Excelの数式や関数を一括削除し、計算結果を保持する

作業シート内の使用済みの行と列をループ処理し、Worksheet.Range[]を使ってセルを取得します。その後、セルに数式や関数が含まれているかどうかを判断し、含まれている場合はそのセルの値を計算結果に設定して、数式や関数を削除する方法をとります。

以下は具体的な手順です:

  1. 必要なモジュールをインポートします。
  2. Workbookオブジェクトを作成し、Workbook.LoadFromFile()メソッドを使用してExcelファイルを読み込みます。
  3. ワークブック内のワークシートをループ処理し、Workbook.Worksheets.get_Item()メソッドを使用してシートを取得します。
  4. ワークシート内の行と列をループ処理し、Worksheet.Range[int: rowIndex, int: colIndex]プロパティを使用して特定のセルを取得します。
  5. セルに数式や関数が含まれているかどうかは、CellRange.HasFormulaプロパティの値で確認できます。含まれている場合:
    • CellRange.FormulaValueプロパティを使用して、数式や関数の計算結果を取得します。
    • CellRange.Clear(ExcelClearOptions.ClearContent)メソッドを使用してセルの内容をクリアします。
    • CellRange.Valueプロパティを使って、取得した計算結果をセルの値として設定します。
  6. Workbook.SaveToFile()メソッドを使ってワークブックを保存します。
  7. リソースを解放します。

コード例

from spire.xls import *

# Workbook オブジェクトを作成
workbook = Workbook()

# Excel ワークブックを読み込む
workbook.LoadFromFile("Sample.xlsx")

# すべてのワークシートを繰り返し処理
for sheetIndex in range(workbook.Worksheets.Count):
    # ワークシートを取得
    sheet = workbook.Worksheets.get_Item(sheetIndex)
    # すべてのセルを繰り返し処理
    for rowIndex in range(sheet.Rows.Count):
        for colIndex in range(sheet.Columns.Count):
            # セルを取得
            cell = sheet.Range[rowIndex + 1, colIndex + 1]
            # セルに数式があるかどうか確認
            if cell.HasFormula:
                # 数式の結果を取得
                formulaValue = cell.FormulaValue
                # セルの内容をクリア
                cell.Clear(ExcelClearOptions.ClearContent)
                # セルの値を数式の結果に設定
                cell.Value = formulaValue

# ワークブックを保存
workbook.SaveToFile("output/ClearFormula.xlsx", FileFormat.Version2016)
workbook.Dispose()

結果ファイル
2024-09-30_170504.png

無料ライセンスの申請

本記事では、Pythonを使用してExcel内の数式や関数を削除し、その計算結果を保持する方法について説明しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?