チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション

データ主導の業務が一般化している現在、Python 開発者にとって「リスト(Python の基本データ構造)を Excel へ変換する」作業は非常に一般的です。Excel は多くの業界で、データの可視化・共有・レポート作成の標準ツールとして広く利用されています。
レポート生成、分析前の前処理、非エンジニアへのデータ共有など、Python のリストを Excel に出力するスキルは欠かせません。
pandas のような軽量ライブラリでも基本的な出力は可能ですが、Spire.XLS for Python は Excel の書式設定、スタイル、ファイル生成を細かく制御でき、Microsoft Excel のインストールも不要です。このガイドでは、さまざまなリスト構造を Excel へ変換する方法を、実例とベストプラクティスとともに解説します。
Python のリストは柔軟にデータを保持できますが、Excel には次のような利点があります:
売上データ、ユーザー情報、アンケート結果など、Excel に書き出すことでデータの共有性と実用性が大幅に向上します。
Spire.XLS for Python を使用するには、pip でインストールします:
pip install Spire.XLS
Excel(.xls/.xlsx)形式の読み書きに対応し、太字、列幅、色などの書式設定が自由に行えます。 本番レベルの Excel 出力に最適なライブラリです。
さらに多くの機能を試すには、30日間の無料評価ライセンスを取得できます。
一次元リストを Excel に書き込む場合、リストをループし、1 列に順番に挿入します。
以下のコード例では、文字列のリストを 1 列に書き込みます。 数値リストの場合は、保存前に数値書式を設定できます。
from spire.xls import *
from spire.xls.common import *
# Workbook オブジェクトを作成します
workbook = Workbook()
# 既定で作成されるワークシートをすべて削除します
workbook.Worksheets.Clear()
# 新しいワークシートを追加します
worksheet = workbook.Worksheets.Add("シンプルなリスト")
# サンプルデータ(文字列のリスト)
data_list = ["佐藤", "鈴木", "高橋", "田中", "伊藤"]
# リストの内容を Excel セルに書き込みます(1行目・1列目から開始)
for index, value in enumerate(data_list):
worksheet.Range[index + 1, 1].Value = value
# 表示を見やすくするため、列幅を設定します
worksheet.Range[1, 1].ColumnWidth = 15
# Workbook を Excel ファイルとして保存します
workbook.SaveToFile("SimpleListToExcel.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
1 行に並べたい場合は以下のようにします:
for index, value in enumerate(data_list):
worksheet.Range[1, index + 1].Value = value
出力結果: きれいに整った 1 列の Excel になります。

ネストされたリスト(2D リスト)は、行列形式のデータで、Excel シートに直接マッピングできます。 以下は、従業員データ(名前・年齢・部署)を Excel テーブルへ変換する例です。
from spire.xls import *
from spire.xls.common import *
# Workbook オブジェクトを作成します
workbook = Workbook()
# 既定で作成されるワークシートをすべて削除します
workbook.Worksheets.Clear()
# 新しいワークシートを追加します
worksheet = workbook.Worksheets.Add("社員データ")
# ネストされたリスト(各行:[氏名、年齢、部署])
employee_data = [
["氏名", "年齢", "部署"], # ヘッダー行
["佐藤 太郎", 30, "人事部"],
["鈴木 一郎", 28, "開発部"],
["高橋 花子", 35, "マーケティング部"],
["田中 美咲", 29, "経理部"]
]
# ネストされたリストの内容を Excel に書き込みます
for row_idx, row_data in enumerate(employee_data):
for col_idx, value in enumerate(row_data):
if isinstance(value, int):
worksheet.Range[row_idx + 1, col_idx + 1].NumberValue = value
else:
worksheet.Range[row_idx + 1, col_idx + 1].Value = value
# ヘッダー行の書式を設定します
worksheet.Range["A1:C1"].Style.Font.IsBold = True
worksheet.Range["A1:C1"].Style.Color = Color.get_Yellow()
# 列幅を設定します
worksheet.Range[1, 1].ColumnWidth = 10
worksheet.Range[1, 2].ColumnWidth = 6
worksheet.Range[1, 3].ColumnWidth = 15
# Workbook を Excel ファイルとして保存します
workbook.SaveToFile("NestedListToExcel.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
ポイント
出力結果: ヘッダーが太字・黄色で、型が正しく保持された Excel テーブル。

Excel ファイルをよりプロフェッショナルな仕上がりにするために、Spire.XLS for Python を使用して、セルの罫線を追加したり、条件付き書式を設定したり、その他の書式設定オプションを適用したりできます。
辞書型のリストは、フィールド名付きのデータ構造を扱う際に一般的です。 以下の例では、顧客情報のリストを Excel に書き出します。
from spire.xls import *
from spire.xls.common import *
# Workbook オブジェクトを作成します
workbook = Workbook()
# 既定で作成されるワークシートをすべて削除します
workbook.Worksheets.Clear()
# 新しいワークシートを追加します
worksheet = workbook.Worksheets.Add("顧客データ")
# 辞書のリスト
customers = [
{"ID": 101, "氏名": "山田 太郎", "メールアドレス": "このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。"},
{"ID": 102, "氏名": "佐藤 花子", "メールアドレス": "このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。"},
{"ID": 103, "氏名": "鈴木 一郎", "メールアドレス": "このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。"}
]
# 辞書のキーからヘッダーを取得します
headers = list(customers[0].keys())
# ヘッダーを 1 行目に書き込みます
for col, header in enumerate(headers):
worksheet.Range[1, col + 1].Value = header
worksheet.Range[1, col + 1].Style.Font.IsBold = True # ヘッダーを太字に設定します
# データ行を書き込みます
for row, customer in enumerate(customers, start=2): # 2 行目から開始します
for col, key in enumerate(headers):
value = customer[key]
if isinstance(value, (int, float)):
worksheet.Range[row, col + 1].NumberValue = value
else:
worksheet.Range[row, col + 1].Value = value
# 列幅を自動調整します
worksheet.AutoFitColumn(2)
worksheet.AutoFitColumn(3)
# Workbook を Excel ファイルとして保存します
workbook.SaveToFile("CustomerDataToExcel.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
メリット
出力結果:ヘッダーが自動生成され、データ型が保持され、列幅が自動調整された Excel ファイル。

Python のリストを Excel に変換する作業はデータ処理の基本スキルです。 Spire.XLS を利用することで、簡単なリストから複雑な入れ子構造、辞書型データまで、きれいで実用的な Excel ファイルを簡単に生成できます。
より高度な操作(グラフ、数式追加など)については、公式ドキュメントをご覧ください。
A: pandas は素早い基本出力に適していますが、書式設定の自由度は低めです。 Spire.XLS は以下の用途に向いています:
workbook.SaveToFile("output.xlsx", ExcelVersion.Version2016)
workbook.SaveToFile("output.xls", ExcelVersion.Version97to2003)
A: Workbook を作成すると空のシートが自動生成されるため、
Workbook.Worksheets.Clear() を呼ばないと不要なシートが残ります。
A: 主な原因は次の通りです:

CSV(Comma-Separated Values)は表形式データの保存に広く利用される汎用フォーマットです。一方、リストは Python における基本データ構造で、データ処理に柔軟に対応できます。Python で CSV をリストへ変換する ことで、データ分析や他の処理フローとの統合をスムーズに行えます。
Python 標準の csv モジュールでも基本的な読み込みは可能ですが、Spire.XLS for Python を使用すると、スプレッドシートのような直感的な操作で構造的な CSV データを扱うことができます。
本記事では、Python で CSV をリスト(および辞書のリスト)に読み込む方法 を、基礎から応用までコード例付きで分かりやすく解説します。
目次:
Spire.XLS はスプレッドシート処理用の強力なライブラリで、CSV 取り扱いにおいて次のような利点があります。
インストール方法
以下の pip コマンドで Spire.XLS for Python をインストールできます:
pip install Spire.XLS
インストール後、すぐにプロジェクトで使用できます。
CSV にヘッダーがない場合(データ行のみの場合)、Spire.XLS を使うと、行ごとにリストへ変換し、最終的に「リストのリスト」として取得できます。
手順:
CSV → リスト変換コード例:
from spire.xls import *
from spire.xls.common import *
# Workbook を初期化し、CSV を読み込む
workbook = Workbook()
workbook.LoadFromFile("Employee.csv",",")
# 最初のワークシートを取得
sheet = workbook.Worksheets[0]
# シートのデータを二次元リストへ変換
data_list = []
for i in range(sheet.Rows.Length):
row = []
for j in range(sheet.Columns.Length):
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row)
# 結果を表示
for row in data_list:
print(row)
# リソースを解放
workbook.Dispose()
出力例:

ヘッダー(例:name,age,city)がある CSV の場合、辞書のリストへ変換すると、列名をキーとして扱えるためデータ操作がより直感的になります。
CSV → 辞書リスト変換コード例:
from spire.xls import *
# Workbook を初期化し、CSV を読み込む
workbook = Workbook()
workbook.LoadFromFile("Customer_Data.csv", ",")
# 最初のワークシートを取得
sheet = workbook.Worksheets[0]
# ヘッダー(1 行目)を取得
headers = []
for j in range(sheet.Columns.Length):
headers.append(sheet.Range[1, j + 1].Value)
# データ行をディクショナリのリストへ変換
dict_list = []
for i in range(1, sheet.Rows.Length): # ヘッダー行をスキップ
row_dict = {}
for j in range(sheet.Columns.Length):
key = headers[j]
value = sheet.Range[i + 1, j + 1].Value
row_dict[key] = value
dict_list.append(row_dict)
# 結果を出力
for record in dict_list:
print(record)
# リソースを解放
workbook.Dispose()
説明
出力例:

カンマ以外の区切り文字(TSV など)を使う場合は、LoadFromFile の第 2 引数で区切り文字を指定します:
# タブ区切りファイル
workbook.LoadFromFile("data.tsv", "\t")
# セミコロン区切りファイル
workbook.LoadFromFile("data_eu.csv", ";")
CSV に空セルがある場合、リストでは空文字 ('') として保持されます。空文字を "N/A" などに置き換える場合は以下のようにします:
cell_value = sheet.Range[i + 1, j + 1].Value or "N/A"
Python で CSV をリストへ変換する方法 は、Spire.XLS を使うことで効率的かつ柔軟になります。 生データ用にリストのリストを使う場合も、構造化された分析のために辞書リストを使う場合も、Spire.XLS はパース処理・インデックス管理・リソース解放を自動的に行ってくれます。
この記事のコード例を活用すれば、データパイプライン、分析スクリプト、アプリケーションへ簡単に組み込むことができます。
より高度な機能については、Spire.XLS for Python ドキュメント を参照してください。
A: はい。一般的な業務データであれば問題なく処理できます。ただし、数百万行規模など極端に大きいデータについては、分割処理やビッグデータ専用のツールの利用を検討してください。
A: Spire.XLS はパース処理を細かく制御でき、追加のデータサイエンス系依存パッケージも不要です。 分析中心なら pandas が便利ですが、CSV の解析を正確に行いたい場合 や pandas が使えない環境 では Spire.XLS が適しています。
A: 辞書のリストへ変換する方法がおすすめです。1 行目をヘッダーとして読み取り、各行のデータとマッピングすることで、列名でデータへアクセスできます。
A: 内側のループで対象列のみを読み込むよう変更してください。
# 1 列目と 3 列目のみを抽出(インデックス 0 と 2)
target_columns = [0, 2]
for i in range(sheet.Rows.Length):
row = []
for j in target_columns:
cell_value = sheet.Range[i + 1, j + 1].Value
row.append(cell_value)
data_list.append(row)
Excel ファイルを PDF 形式に変換することで、スプレッドシートを他人と共有・配布しやすくなります。特に、異なるデバイスやソフトウェアでもレイアウトや書式を維持したい場合に便利です。さらに、PDF は Excel ファイルよりも見栄えが良く、公式なレポートやプレゼン資料、ビジネス文書としてよく利用されます。
この記事では、Python で Spire.XLS for Python ライブラリを使用して、Excel ファイルを PDF に変換する方法をご紹介します。
この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。
pip install Spire.XLS
Excelドキュメント全体を1つのPDFファイルに変換するには、Workbook.SaveToFile() メソッドを使用します。変換後のPDFには、各ワークシートが1ページずつ表示されます。変換の詳細設定は、Workbook.ConverterSetting プロパティを使って調整できます。
以下は、Excel ドキュメント全体を PDF に変換する手順です:
from spire.xls import Workbook, FileFormat
# Workbook オブジェクトを作成します
workbook = Workbook()
# Excel ドキュメントを読み込みます
workbook.LoadFromFile("Sample.xlsx")
# ワークブック内のワークシートを繰り返し処理します
for sheet in workbook.Worksheets:
# PageSetup オブジェクトを取得します
pageSetup = sheet.PageSetup
# ページの余白を設定します
pageSetup.TopMargin = 0.3
pageSetup.BottomMargin = 0.3
pageSetup.LeftMargin = 0.3
pageSetup.RightMargin = 0.3
# PDF 変換時にワークシートをページに収めるように設定します
workbook.ConverterSetting.SheetFitToPage = True
# PDF ファイルに変換します
workbook.SaveToFile("output/ExcelをPDFに変換.pdf", FileFormat.PDF)
workbook.Dispose()

特定のワークシートだけを PDF に変換したい場合は、Worksheet.SaveToPdf() メソッドを使用します。以下がその手順です:
from spire.xls import Workbook
# Workbook オブジェクトを作成します
workbook = Workbook()
# Excel ドキュメントを読み込みます
workbook.LoadFromFile("Sample.xlsx")
# 特定のワークシートを取得します
sheet = workbook.Worksheets[1]
# PageSetup オブジェクトを取得します
pageSetup = sheet.PageSetup
# ページの余白を設定します
pageSetup.TopMargin = 0.3
pageSetup.BottomMargin = 0.3
pageSetup.LeftMargin = 0.3
pageSetup.RightMargin = 0.3
# PDF 変換時にワークシートをページに収めるように設定します
workbook.ConverterSetting.SheetFitToPage = True
# ワークシートを PDF ファイルに変換します
sheet.SaveToPdf("output/ワークシートをPDFに変換.pdf")
workbook.Dispose()

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。