Excel でのテキストから数値への変換とその逆は、効率的なデータ管理にとって不可欠です。テキストを数値に変換することで、財務報告や統計分析などのタスクに不可欠な正確な計算とデータ処理が可能になります。一方、数値をテキストに変換することは、出力の書式設定、明確で読みやすいラベルの作成、ユーザーフレンドリーな方法でのデータ表示に役立ちます。
テキストとして保存された数値を修正する必要がある場合でも、先頭のゼロ付きの数値をフォーマットする必要がある場合でも、この機能を使用するとデータ型を効果的に処理できます。この記事では、Spire.XLS for Python を使用して Excel でテキストを数値に、数値をテキストに変換する方法を学びます。
クイックナビゲーション
前提条件
開始する前に、以下が準備されていることを確認してください:
Python 3.x がインストールされていること
Spire.XLS for Python がインストールされていること:
pip install Spire.XLSまた、Spire.XLS for Python をダウンロードして、プロジェクトに手動で追加することもできます。
変換するデータを含む Excel ファイル
このガイドでは、テキストから数値への変換シナリオと数値からテキストへの変換シナリオの両方を示し、ニーズに最も適したアプローチを選択できるようにします。
Excel でテキストを数値に変換する
他のソースから Excel にデータをインポートすると、セルの左上隅に小さな緑色の三角形が表示されることがあります。このエラーインジケーターは、数値がテキストとして保存されていることを示しています。テキストとして保存された数値は、結果ではなく計算されていない数式が表示されるなど、予期しない結果を引き起こす可能性があります。
テキストとして保存された数値を数値に変換するには、CellRange.ConvertToNumber() メソッドを単純に使用できます。CellRange オブジェクトは単一のセルまたはセル範囲を表すことができます。
テキストを数値に変換する手順
Workbookオブジェクトを作成するWorkbook.LoadFromFile()メソッドを使用して Excel ファイルを読み込むWorkbook.Worksheets[index]プロパティを使用して特定のワークシートを取得するWorksheet.Rangeプロパティを使用してセルまたはセル範囲を取得するCellRange.ConvertToNumber()メソッドを使用してセル内のテキストを数値に変換するWorkbook.SaveToFile()メソッドを使用してドキュメントを別の Excel ファイルに保存する
コード例
以下は、セル範囲内のテキストを数値に変換する方法の例です:
from spire.xls import *
from spire.xls.common import *
# Workbook オブジェクトを作成する
workbook = Workbook()
# Excel ドキュメントを読み込む
workbook.LoadFromFile("Input.xlsx")
# 特定のワークシートを取得する
worksheet = workbook.Worksheets[0]
# セル範囲を取得する
range = worksheet.Range["D2:G13"]
# テキストを数値に変換する
range.ConvertToNumber()
# ワークブックを別の Excel ファイルに保存する
workbook.SaveToFile("output/TextToNumbers.xlsx", ExcelVersion.Version2013)
# リソースを破棄する
workbook.Dispose()
以下は変換結果のプレビューです:

コードの説明
- Workbook: Excel ワークブックオブジェクトを表す
- LoadFromFile: ソース Excel ファイルを読み込む
- Worksheets[0]: インデックスによって最初のワークシートを取得する
- Range["D2:G13"]: 特定のセル範囲を取得する
- ConvertToNumber(): テキスト値を数値に変換する
- SaveToFile: 変更されたワークブックを新しいファイルに保存する
ConvertToNumber() メソッドは、テキスト形式の数値を自動的に検出して実際の数値に変換し、緑色の三角形のエラーインジケーターを削除して適切な計算を可能にします。
Excel で数値をテキストに変換する
Excel で数値データを扱う際、数値をテキストに変換する必要がある状況に遭遇することがあります。これは、先頭のゼロを保持する必要がある ID や電話番号など、特定の書式設定を必要とするデータを扱う場合に特に重要です。
セル内の数値をテキストに変換するには、CellRange.NumberFormat を @ に設定します。CellRange オブジェクトは単一のセルまたはセル範囲を表します。
数値をテキストに変換する手順
Workbookオブジェクトを作成するWorkbook.LoadFromFile()メソッドを使用して Excel ファイルを読み込むWorkbook.Worksheets[index]プロパティを使用して特定のワークシートを取得するWorksheet.Rangeプロパティを使用して特定のセルまたはセル範囲を取得するCellRange.NumberFormatを@に設定してセル内の数値をテキストに変換するWorkbook.SaveToFile()メソッドを使用してドキュメントを別の Excel ファイルに保存する
コード例
以下は、セル範囲内の数値をテキストに変換する方法の例です:
from spire.xls import *
from spire.xls.common import *
# Workbook オブジェクトを作成する
workbook = Workbook()
# Excel ドキュメントを読み込む
workbook.LoadFromFile("Employee.xlsx")
# 特定のワークシートを取得する
worksheet = workbook.Worksheets[0]
# セル範囲を取得する
cellRange = worksheet.Range["F2:F9"]
# セル範囲内の数値をテキストに変換する
cellRange.NumberFormat = "@"
# ワークブックを別の Excel ファイルに保存する
workbook.SaveToFile("output/NumbersToText.xlsx", ExcelVersion.Version2013)
# リソースを破棄する
workbook.Dispose()
コードの説明
- NumberFormat = "@": セルの書式をテキストに設定し、数値の正確な表示を保持する
@シンボルは Excel のテキスト書式指定子です- この変換により、Excel が数値を自動的にフォーマットするのを防ぎます(例:先頭のゼロの削除)
- 変換後、数値はテキスト文字列として扱われます
数値書式をテキストに設定すると、Excel は入力された通りに数値を表示します。これは以下の場合に不可欠です:
- 先頭のゼロ付きの電話番号(例:0123456789)
- 製品 ID または SKU コード
- ゼロで始まる郵便番号
- 正確な形式を維持する必要がある数値識別子
結論
Excel でのテキストから数値への変換と数値からテキストへの変換は、データ管理と精度を大幅に向上させる簡単なプロセスです。Spire.XLS for Python を使用することで、データ型変換をプログラムで簡単に処理できます。
このガイドでカバーした主要なメソッドは次のとおりです:
- ConvertToNumber(): 計算のためにテキスト形式の数値を実際の数値に変換する
- NumberFormat = "@": 正確な表示書式を保持するために数値をテキストとしてフォーマットする
- 柔軟な適用: 単一セルまたは範囲全体に変換を適用する
このアプローチは、インポートされたデータのクリーニング、識別子のフォーマット、スプレッドシート全体でのデータの一貫性の確保に特に役立ちます。テキストで保存された数値に対する計算を有効にする必要がある場合でも、表示目的で書式を保持する必要がある場合でも、Spire.XLS はデータ管理目標を達成するためのツールを提供します。
Spire.XLS for Python のパフォーマンスを評価し、制限を解除したい場合は、30日間の無料トライアルを申請できます。
よくある質問
Excel で数値がテキストとして保存される原因は何ですか?
数値は、CSV ファイル、データベース、またはウェブページなどの外部ソースからインポートされたときに、テキストとして保存されることがよくあります。また、数値の前にアポストロフィ(')が付いている場合や、数値を入力する前にセルがテキストとしてフォーマットされていた場合にも、Excel は数値をテキストとして保存することがあります。
テキストとして保存された数値を含むセルを識別するにはどうすればよいですか?
Excel は、テキストとして保存された数値を含むセルの左上隅に小さな緑色の三角形を表示します。また、セルの書式を確認することもできます - 「テキスト」と表示されているが数値が含まれている場合、その数値はテキストとして保存されています。
範囲全体ではなく特定のセルのみを変換できますか?
はい。アドレスを指定して個々のセルを対象にすることができます:
# 単一のセルを変換する
single_cell = worksheet.Range["D5"]
single_cell.ConvertToNumber()
これにより、どのセルに変換を適用するかを精密に制御できます。
テキストを数値に変換すると数式はどうなりますか?
テキストを数値に変換した後、それらのセルを参照する数式は自動的に再計算されます。以前は計算されていなかった数式が、適切な結果を表示するようになります。
数値をテキストに変換すると既存の数式に影響しますか?
はい。数値をテキストに変換すると、計算のためにそれらのセルに依存する数式がエラーや予期しない結果を返す可能性があります。変換前には必ず数式の依存関係を確認してください。
複数の範囲を一度に変換できますか?
はい。複数の範囲を定義して、順次変換を適用できます:
# 複数の範囲を変換する
range1 = worksheet.Range["A2:A50"]
range2 = worksheet.Range["C2:C50"]
range1.ConvertToNumber()
range2.ConvertToNumber()
テキスト形式の数値を含むセルを検出する方法はありますか?
変換前にセルの書式をプログラムでチェックできます:
# セルがテキストとしてフォーマットされているかチェックする
cell = worksheet.Range["D5"]
if cell.Style.NumberFormat == "@":
print("セルはテキストとしてフォーマットされています")
サポートされている Excel のバージョンは何ですか?
Spire.XLS for Python は、Excel 97-2003 (.xls)、Excel 2007-2019 (.xlsx)、Excel 2013 以降の形式など、すべての主要な Excel バージョンをサポートしています。保存時にバージョンを指定します:
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2013)






