チュートリアル

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

チュートリアル»xls python conversion

Displaying items by tag: xls python conversion

Python で一次元/二次元リストおよび辞書型リストを Excel にエクスポート

データ主導の業務が一般化している現在、Python 開発者にとって「リスト(Python の基本データ構造)を Excel へ変換する」作業は非常に一般的です。Excel は多くの業界で、データの可視化・共有・レポート作成の標準ツールとして広く利用されています。
レポート生成、分析前の前処理、非エンジニアへのデータ共有など、Python のリストを Excel に出力するスキルは欠かせません。

pandas のような軽量ライブラリでも基本的な出力は可能ですが、Spire.XLS for Python は Excel の書式設定、スタイル、ファイル生成を細かく制御でき、Microsoft Excel のインストールも不要です。このガイドでは、さまざまなリスト構造を Excel へ変換する方法を、実例とベストプラクティスとともに解説します。

なぜ Python のリストを Excel に変換するのか

Python のリストは柔軟にデータを保持できますが、Excel には次のような利点があります:

  • 共同作業:Excel は広く利用されており、Python を知らなくても並べ替え・フィルター・編集が可能。
  • レポート作成:書き出した後にグラフやピボットテーブルを追加できる。
  • コンプライアンス:多くの業界で Excel 形式が監査や保存の基準とされている。
  • 可視化:色・枠線・ヘッダーなどの Excel の書式設定により、リストより読みやすい。

売上データ、ユーザー情報、アンケート結果など、Excel に書き出すことでデータの共有性と実用性が大幅に向上します。

インストール手順

Spire.XLS for Python を使用するには、pip でインストールします:

pip install Spire.XLS

Excel(.xls/.xlsx)形式の読み書きに対応し、太字、列幅、色などの書式設定が自由に行えます。 本番レベルの Excel 出力に最適なライブラリです。

さらに多くの機能を試すには、30日間の無料評価ライセンスを取得できます

基本:一次元の Python リストを Excel に変換する

一次元リストを 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 になります。

Pythonを使用してシンプルなPythonリストをExcelに変換する

二次元リスト(ネストされたリスト)を 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 テーブル。

Pythonを使用してネストされたPythonリストをExcelに変換する

Excel ファイルをよりプロフェッショナルな仕上がりにするために、Spire.XLS for Python を使用して、セルの罫線を追加したり、条件付き書式を設定したり、その他の書式設定オプションを適用したりできます。

辞書型(dict)のリストを Excel に変換する

辞書型のリストは、フィールド名付きのデータ構造を扱う際に一般的です。 以下の例では、顧客情報のリストを 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を使用してPython辞書型リストをExcelに変換する

Excel 出力を最適化する 4 つのポイント

  • データ型を保持する:数値には NumberValue を使用(Excel 内で計算が正しく機能)
  • 列幅を自動調整する:AutoFitColumn() で手動設定の手間を軽減
  • シート名を分かりやすくする:"Sheet1" ではなく "Q3 Sales" などに変更
  • Workbook を破棄する:大量データでは Dispose() によるメモリ解放が重要

まとめ

Python のリストを Excel に変換する作業はデータ処理の基本スキルです。 Spire.XLS を利用することで、簡単なリストから複雑な入れ子構造、辞書型データまで、きれいで実用的な Excel ファイルを簡単に生成できます。

より高度な操作(グラフ、数式追加など)については、公式ドキュメントをご覧ください。

FAQs:リストから Excel への変換

Q1: pandas と Spire.XLS の違いは?

A: pandas は素早い基本出力に適していますが、書式設定の自由度は低めです。 Spire.XLS は以下の用途に向いています:

  • 色・フォント・罫線などの高度な書式設定
  • ウィンドウ枠の固定、条件付き書式、グラフなどの Excel 機能を利用
  • Excel のインストール不要で 単独動作

Q2: Excel ファイルを別形式で保存する方法は?

workbook.SaveToFile("output.xlsx", ExcelVersion.Version2016)
workbook.SaveToFile("output.xls", ExcelVersion.Version97to2003)

Q3: Spire.XLS はデータ型をどのように扱う?

  • .Text:文字列
  • .NumberValue:数値
  • .DateTimeValue:日付
  • .BooleanValue:True/False

Q4: なぜデフォルトのワークシートを削除するのですか?

A: Workbook を作成すると空のシートが自動生成されるため、 Workbook.Worksheets.Clear() を呼ばないと不要なシートが残ります。

Q5: Excel に正しく表示されない場合の原因は?

A: 主な原因は次の通りです:

  • Excel のセルは 1 から始まるインデックスを使用している
  • データ型が適切に設定されていない
  • 保存前に Workbook.Dispose() を呼んでいない
Published in 変換
Tagged under

Python で CSV をリストやディクショナリに変換する

CSV(Comma-Separated Values)は表形式データの保存に広く利用される汎用フォーマットです。一方、リストは Python における基本データ構造で、データ処理に柔軟に対応できます。Python で CSV をリストへ変換する ことで、データ分析や他の処理フローとの統合をスムーズに行えます。

Python 標準の csv モジュールでも基本的な読み込みは可能ですが、Spire.XLS for Python を使用すると、スプレッドシートのような直感的な操作で構造的な CSV データを扱うことができます。

本記事では、Python で CSV をリスト(および辞書のリスト)に読み込む方法 を、基礎から応用までコード例付きで分かりやすく解説します。

目次:

Spire.XLS を CSV → リスト変換に使用する理由

Spire.XLS はスプレッドシート処理用の強力なライブラリで、CSV 取り扱いにおいて次のような利点があります。

  • 直感的なインデックス操作:Excel と同様の 1 ベース行列インデックスで扱える
  • 柔軟な区切り文字設定:カンマ・タブ・セミコロンなど任意の区切り文字を指定可能
  • 構造的アクセス:CSV をワークシートとして読み込むため、行列 traversal が容易
  • 強力なデータパース機能:数値・日付・文字列を自動で解析

インストール方法

以下の pip コマンドで Spire.XLS for Python をインストールできます:

pip install Spire.XLS

インストール後、すぐにプロジェクトで使用できます。

基本:CSV を Python リストへ変換する

CSV にヘッダーがない場合(データ行のみの場合)、Spire.XLS を使うと、行ごとにリストへ変換し、最終的に「リストのリスト」として取得できます。

手順:

  • Spire.XLS モジュールをインポート
  • Workbook オブジェクトを生成し CSV を読み込む
  • 1 番目のワークシートを取得
  • 行とセルを順に読み込み Python リストとして格納

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()

出力例:

PythonコードでCSVファイルをリストに変換する

応用:CSV を辞書のリストへ変換する

ヘッダー(例: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()

説明

  • CSV を読み込む:Workbook クラスの LoadFromFile() を使用
  • ヘッダー行の取得:1 行目を辞書キーとして利用
  • 辞書化処理:各行のセル内容を、対応するヘッダー名をキーとしてマッピング

出力例:

Pythonコードを使用してCSVファイルを辞書リストに変換する

特定ケースの処理方法

カスタム区切り文字の CSV(タブ・セミコロンなど)

カンマ以外の区切り文字(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 ドキュメント を参照してください。

よくある質問(FAQ)

Q1: Spire.XLS は大規模 CSV にも対応できますか?

A: はい。一般的な業務データであれば問題なく処理できます。ただし、数百万行規模など極端に大きいデータについては、分割処理やビッグデータ専用のツールの利用を検討してください。

Q2: pandas を使う方法と比べてどうですか?

A: Spire.XLS はパース処理を細かく制御でき、追加のデータサイエンス系依存パッケージも不要です。 分析中心なら pandas が便利ですが、CSV の解析を正確に行いたい場合pandas が使えない環境 では Spire.XLS が適しています。

Q3: ヘッダー付きの CSV をリストへ変換するには?

A: 辞書のリストへ変換する方法がおすすめです。1 行目をヘッダーとして読み取り、各行のデータとマッピングすることで、列名でデータへアクセスできます。

Q4: CSV の特定列だけをリスト化したい場合は?

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)
Published in 変換
Tagged under

Excel ファイルを PDF 形式に変換することで、スプレッドシートを他人と共有・配布しやすくなります。特に、異なるデバイスやソフトウェアでもレイアウトや書式を維持したい場合に便利です。さらに、PDF は Excel ファイルよりも見栄えが良く、公式なレポートやプレゼン資料、ビジネス文書としてよく利用されます。

この記事では、Python で Spire.XLS for Python ライブラリを使用して、Excel ファイルを PDF に変換する方法をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で Excel 全体を PDF に変換する

Excelドキュメント全体を1つのPDFファイルに変換するには、Workbook.SaveToFile() メソッドを使用します。変換後のPDFには、各ワークシートが1ページずつ表示されます。変換の詳細設定は、Workbook.ConverterSetting プロパティを使って調整できます。

以下は、Excel ドキュメント全体を PDF に変換する手順です:

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Worksheet.PageSetup プロパティを使用して、各ワークシートの余白(PDF の空白部分になる)を設定します。
  • Workbook.ConverterSetting オブジェクトのプロパティを使って、PDF 変換時のオプションを指定します。
  • Workbook.SaveToFile() メソッドで、Excel ドキュメント全体を PDF ファイルに変換します。
  • Python
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()

PythonコードでExcelワークブック全体をPDF文書に変換

Python で特定のワークシートのみを PDF に変換する

特定のワークシートだけを PDF に変換したい場合は、Worksheet.SaveToPdf() メソッドを使用します。以下がその手順です:

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[] プロパティを使用して、変換したいワークシートを取得します。
  • Worksheet.PageSetup プロパティで、該当ワークシートの余白を設定します。
  • Workbook.ConverterSetting オブジェクトで、PDF 変換時のオプションを指定します。
  • Worksheet.SaveToPdf() メソッドを使って、選択したワークシートを PDF に変換します。
  • Python
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()

PythonコードによるワークシートのPDF文書への変換

一時ライセンスを申請する

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

Published in 変換
Tagged under