チュートリアル

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

チュートリアル»xls python conversion

Displaying items by tag: xls python conversion

Python リストから CSV への変換チュートリアル

CSV(Comma-Separated Values)は、アプリケーション、データベース、プログラミング言語間でのデータ交換において最も広く使用されている形式の1つです。Python 開発者にとって、Python リストを CSV 形式に変換する必要性は頻繁に発生します。アプリケーションデータのエクスポート、レポートの生成、分析用データセットの準備など、さまざまな場面で必要となります。

Python の組み込み csv モジュールは基本的な操作を処理できますが、ネストされたリストや辞書などの複雑なデータ構造を扱うには、追加のロジックとエラー処理が必要です。これらの変換を手動で管理することは、特に複数のデータ型やカスタムフォーマット要件を扱う場合、非効率的でエラーが発生しやすくなります。

このガイドでは、Spire.XLS for Python を使用して、さまざまな Python リスト構造を CSV 形式に変換する完全なパイプラインの構築に焦点を当てます。このアプローチは、単純な1次元リストから複雑なネストされた辞書まで、データの整合性を維持しながら柔軟な方法を提供する堅牢でスケーラブルなソリューションです。

クイックナビゲーション


Python リスト構造の理解

実装に入る前に、CSV に変換される一般的な Python リスト構造の種類を理解することが重要です。

  • 1次元リスト: 値の単純なシーケンス(例: ["りんご", "バナナ", "さくらんぼ"])— 単一行または単一列のデータに最適
  • 2次元リスト: タブラーデータを表すリストのリスト — ヘッダーと行を持つ構造化されたデータセットに最適
  • 辞書のリスト: 名前付きフィールドを持つデータ(例: [{"名前": "田中", "年齢": 30}])— キーを通じて意味的な意味を維持

この包括的なアプローチは、現実世界のアプリケーションがリストから CSV へのワークフローをどのように処理するかを反映しています。異なるデータ構造に対して柔軟な方法を提供しながら、一貫した出力品質を確保します。


前提条件

開始する前に、以下を用意してください。

  • Python 3.x がインストールされていること

  • Spire.XLS for Python がインストールされていること:

    pip install Spire.XLS
    

    または、Spire.XLS for Python をダウンロードして、プロジェクトに手動で追加することもできます。

  • Python コードを記述するためのテキストエディタまたは IDE

リストから CSV への変換に Spire.XLS を使用する理由

Python の組み込み csv モジュールは単純な CSV 操作に優れていますが、Spire.XLS は以下の追加の利点を提供します。

  • さまざまなデータ型をシームレスに処理: 文字列、数値、特殊文字を自動的に管理
  • カスタマイズ可能な CSV 出力: 欧州ロケールや特殊なアプリケーション向けに、異なる区切り文字(セミコロン、タブ)をサポート
  • 複数のファイル形式サポート: コード変更なしで CSV、XLSX、XLS、その他の形式として保存可能
  • 複雑な構造に対応: 単純およびネストされたデータ構造の両方を効率的に処理
  • プロフェッショナルグレードの出力: エンタープライズアプリケーション向けに適切なエンコーディングとフォーマットを確保

手順1: 1次元リストを CSV に変換

1次元リストは値の単純なシーケンスです。以下の手順では、これらの値を CSV の単一行または単一列に書き込む方法を説明します。

Python を使用して 1次元リストを CSV に書き込む

手順1: Spire.XLS モジュールをインポート

まず、Spire.XLS から必要なクラスをインポートします。

from spire.xls import *
from spire.xls.common import *

手順2: ワークブックとワークシートを作成

Spire.XLS はデータを整理するためにワークブックとワークシートを使用します。新しいワークブックを作成し、新しいワークシートを追加します。

# ワークブックインスタンスを作成
workbook = Workbook()

# デフォルトのワークシートを削除し、新しいワークシートを追加
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add()

手順3: 1次元リストデータをワークシートに書き込む

リストを単一行(横方向)または単一列(縦方向)に書き込むかを選択します。

例1: 1次元リストを単一行に書き込む

# サンプル 1次元リスト
data_list = ["りんご", "バナナ", "オレンジ", "ぶどう", "マンゴー"]

# リストを行1に書き込む
for i, item in enumerate(data_list):
    worksheet.Range[1, i+1].Value = item

例2: 1次元リストを単一列に書き込む

# サンプル 1次元リスト
data_list = ["りんご", "バナナ", "オレンジ", "ぶどう", "マンゴー"]

# リストを列1に書き込む
for i, item in enumerate(data_list):
    worksheet.Range[i + 1, 1].Value = item

手順4: ワークシートを CSV として保存

SaveToFile() を使用してワークブックを CSV ファイルにエクスポートします。適切なフォーマットを確保するために FileFormat.CSV を指定します。

# CSV ファイルとして保存
workbook.SaveToFile("ListToCSV.csv", FileFormat.CSV)

# リソースを解放するためにワークブックを閉じる
workbook.Dispose()

以下は変換結果のプレビューです。

単純な Python リストを CSV に書き込む

コードの説明

  • Workbook(): 新しい Excel ワークブックインスタンスを作成
  • Worksheets.Clear(): 最初から始めるためにデフォルトのワークシートを削除
  • Worksheets.Add(): データ挿入用の新しいワークシートを追加
  • Range[row, col].Value: 特定のセルにデータを書き込む(1から始まるインデックス)
  • enumerate(): 反復処理のためにインデックスと値を提供
  • SaveToFile(): ワークブックを CSV 形式にエクスポート
  • Dispose(): メモリリークを防ぐためにリソースを解放

この段階で、1次元リストは正常に CSV 形式に変換されました。このアプローチは、商品名、スコア、識別子などの単純なシーケンスに適しています。


手順2: 2次元リストを CSV に変換

2次元リストは、タブラーデータを表すリストのリストです。より一般的には、各内部リストが CSV ファイルの行を表すこのタイプのリストを扱います。

Python を使用して 2次元リストを CSV に書き込む

以下のコードは、2次元リストを CSV に変換する方法を示しています。

from spire.xls import *
from spire.xls.common import *

# ワークブックインスタンスを作成
workbook = Workbook()

# デフォルトのワークシートを削除し、新しいワークシートを追加
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add()

# サンプル 2次元リスト(ヘッダー + データ)
data = [
    ["名前", "年齢", "都市", "給与"],
    ["佐藤太郎", 30, "東京", 500000],
    ["鈴木花子", 25, "大阪", 450000],
    ["高橋次郎", 35, "名古屋", 600000],
    ["田中美咲", 28, "福岡", 520000]
]

# 2次元リストをワークシートに書き込む
for row_index, row_data in enumerate(data):
    for col_index, cell_data in enumerate(row_data):
        worksheet.Range[row_index + 1, col_index + 1].Value = str(cell_data)

# CSV ファイルとして保存
workbook.SaveToFile("2DListToCSV.csv", FileFormat.CSV)
workbook.Dispose()

以下は変換結果のプレビューです。

2次元 Python リストを CSV にエクスポート

重要なポイント

  • 構造化されたタブラーデータに最適: ヘッダーと複数の行を持つデータセットに最適
  • ネストされたループが両方の次元を処理: 外側のループが行を反復、内側のループが列を反復
  • 文字列変換で互換性を確保: str(cell_data) が混合データ型(数値、文字列)を処理
  • 行-列構造を維持: CSV 形式で元の2次元レイアウトを保持

生成された CSV ファイルは、さらに加工することができます。デバイス間で安全にプレゼンテーションを行うために、PDF に変換することも可能です。詳細なオプションについては、Python を使用して Excel や CSV を PDF に変換する方法に関するガイドをご参照ください。


手順3: 辞書のリストを CSV に変換

辞書のリストは、データに名前付きフィールドがある場合に理想的です(例: [{"名前": "田中", "年齢": 30}, {"名前": "鈴木", "年齢": 25}])。辞書のキーが CSV ヘッダーになり、値が行になります。

Python を使用して辞書のリストを CSV に書き込む

以下のコードは、辞書のリストを CSV に変換する方法を示しています。

from spire.xls import *
from spire.xls.common import *

# ワークブックインスタンスを作成
workbook = Workbook()

# デフォルトのワークシートを削除し、新しいワークシートを追加
workbook.Worksheets.Clear()
worksheet = workbook.Worksheets.Add("Data")

# サンプル辞書のリスト
customer_list = [
    {"顧客ID": 101, "名前": "山田花子", "メール": "yamada@ example.com"},
    {"顧客ID": 102, "名前": "伊藤健太", "メール": "ito@ example.com"},
    {"顧客ID": 103, "名前": "中村美香", "メール": "nakamura@ example.com"}
]

# ヘッダー(辞書キー)を抽出して行1に書き込む
if customer_list:  # リストが空でないことを確認
    headers = list(customer_list[0].keys())
    # ヘッダーを書き込む
    for col_index, header in enumerate(headers):
        worksheet.Range[1, col_index + 1].Value = str(header)

    # 辞書の値を行2以降に書き込む
    for row_index, record in enumerate(customer_list):
        for col_index, header in enumerate(headers):
            # 安全に値を取得、キーが存在しない場合は空の文字列を使用
            value = record.get(header, "")
            worksheet.Range[row_index + 2, col_index + 1].Value = str(value)

# CSVファイルとして保存
workbook.SaveToFile("Customer_Data.csv", FileFormat.CSV)
workbook.Dispose()

以下は変換結果のプレビューです。

Python を使用して辞書のリストを CSV ファイルにエクスポート

重要なポイント

  • 最初の辞書からヘッダーを抽出: .keys() を使用して列名を自動的に取得
  • 安全性のために .get() メソッドを使用: デフォルトの空の文字列で欠落したキーを適切に処理
  • 列の順序を維持: 最初の辞書のキーに基づいて順序を保持
  • 空のリストの検証: 処理前にリストが空でないかを確認
  • 意味的な明確さ: 辞書のキーが意味のある列ヘッダーを提供

このアプローチは、API レスポンス、データベースクエリ結果、または CSV にエクスポートする必要がある名前付きフィールドを持つデータに特に役立ちます。


応用: カスタム区切り文字とエンコーディング

Spire.XLS for Python を使用する最大の利点の1つは、カスタム区切り文字とエンコーディングで CSV ファイルを保存する柔軟性です。これにより、異なる地域、アプリケーション、データ要件に合わせて CSV 出力を調整できます。

区切り文字とエンコーディングをカスタマイズ

区切り文字とエンコーディングを指定するには、Worksheet クラスの SaveToFile() メソッドの対応するパラメーターを変更するだけです。

# 異なる区切り文字とエンコーディングで保存
worksheet.SaveToFile("semicolon_delimited.csv", ";", Encoding.get_UTF8())
worksheet.SaveToFile("tab_delimited.csv", "\t", Encoding.get_UTF8()) 
worksheet.SaveToFile("unicode_encoded.csv", ",", Encoding.get_Unicode())

一般的なユースケース

セミコロン区切り文字(欧州ロケール)

多くの欧州諸国では小数点の区切り文字としてカンマの代わりにセミコロンを使用するため、カンマ区切りの CSV ファイルは問題を引き起こす可能性があります。セミコロンを使用することで競合を回避できます。

worksheet.SaveToFile("european_data.csv", ";", Encoding.get_UTF8())

タブ区切り文字(TSV 形式)

タブ区切り値は、データ内にフィールドにカンマが含まれている場合に役立ちます。

worksheet.SaveToFile("tab_separated.csv", "\t", Encoding.get_UTF8())

Unicode エンコーディング

国際文字(中国語、日本語、アラビア語など)の場合は、Unicode エンコーディングを使用します。

worksheet.SaveToFile("international_data.csv", ",", Encoding.get_Unicode())

主な利点

  • 地域の互換性: 異なるロケール要件をサポート
  • データの整合性: フィールド値内の区切り文字の競合を防止
  • 国際サポート: 多言語コンテンツを適切に処理
  • アプリケーション固有の形式: さまざまなソフトウェアシステムの要件を満たす

リストを CSV に変換する際の一般的な落とし穴

Python リストを CSV に変換するプロセスは単純に見えるかもしれませんが、いくつかの実用的な課題が発生する可能性があります。

1. 一貫性のないデータ型

リストには混合データ型(文字列、整数、浮動小数点数、None)が含まれる可能性があり、変換中に型エラーが発生する原因となります。

解決策:

  • 書き込む前にすべての値を str() を使用して文字列に変換
  • None 値をデフォルトの置換で明示的に処理
  • 処理前にデータ型を検証

2. 辞書内の欠落したキー

辞書のリストを変換する際、一部のレコードに特定のキーがない場合、KeyError 例外が発生する可能性があります。

解決策:

  • 安全なアクセスのために .get(key, default_value) メソッドを使用
  • 欠落したキーにデフォルト値を提供
  • 変換前に辞書構造を検証

3. 空のリストまたはデータ構造

空のリストを処理しようとすると、インデックスエラーが発生したり、無効な CSV ファイルが作成されたりする可能性があります。

解決策:

  • 処理前にリストが空でないかを確認
  • 検証を追加: if customer_list:
  • 適切なエラーメッセージでエッジケースを処理

4. データ内の特殊文字とカンマ

カンマ、引用符、改行を含むフィールド値は CSV 構造を壊す可能性があります。

解決策:

  • Spire.XLS がエスケープを自動的に処理
  • 必要に応じてフィールドを引用符で囲む
  • 特殊文字を含むエッジケースデータでテスト

5. リソース管理の問題

ワークブックの破棄に失敗すると、特にバッチ処理シナリオでメモリリークにつながる可能性があります。

解決策:

  • 保存後に常に workbook.Dispose() を呼び出す
  • クリーンアップを確保するために try-finally ブロックを使用
  • 自動リソース管理のためにコンテキストマネージャーを検討

6. 国際文字のエンコーディング問題

非 ASCII 文字は、誤ったエンコーディングが使用されると破損して表示される可能性があります。

解決策:

  • 普遍的な文字サポートのために UTF-8 エンコーディングを使用
  • エンコーディングを明示的に指定: Encoding.get_UTF8()
  • 国際文字セットでテスト

7. 大規模データセットのパフォーマンス問題

非常に大きなリストを処理すると、 상당한 메모리와 시간이 소비될 수 있습니다.

解決策:

  • 非常に大きなデータセットの場合はデータをチャンクで処理
  • ループパフォーマンスを最適化
  • バッチ操作中にメモリ使用量を監視

これらの問題を予測することで、より信頼性の高いリストから CSV への変換ワークフローを構築できます。


結論

Python リストを CSV に変換することは、単純なデータ変換だけでなく、リストデータの読み取り、タブラー形式への整理、標準化された CSV ファイルへの書き込みを含む構造化されたプロセスです。

適切なデータ構造化に焦点を当て、Python と Spire.XLS を使用することで、完全なリストから CSV へのパイプラインを効率的に実装でき、データエクスポートタスクの自動化が容易になります。

このアプローチは、以下の処理に特に役立ちます。

  • アプリケーションデータのエクスポート
  • レポートの生成
  • 分析用データセットの準備
  • API レスポンスのシリアライゼーション
  • データベースクエリ結果のエクスポート

Spire.XLS for Python を使用すると、以下のことが可能です。

  • 最小限のコードで1次元、2次元、辞書ベースのリストを CSV に変換
  • 異なる地域とアプリケーション向けに区切り文字とエンコーディングをカスタマイズ
  • データの整合性を維持しながら複雑なデータ構造を処理
  • エンタープライズアプリケーションに適したプロフェッショナルグレードの出力を確保

単純なシーケンス、構造化されたテーブル、意味的な辞書のいずれを扱っていても、Spire.XLS は基本的なスクリプトから本番システムまでスケールする堅牢なソリューションを提供します。

Spire.XLS for Python のパフォーマンスを評価し、制限を解除したい場合は、30日間の無料トライアルを申請できます。


よくある質問

リストから CSV への変換のベストプラクティスは何ですか?

以下のベストプラクティスに従ってください。

  • 処理前に入力データを検証
  • try-except ブロックで例外を処理
  • 大規模なデータセットを処理する前にサンプルデータでテスト
  • Dispose() を使用してリソースをクリーンアップ
  • 国際文字に適切なエンコーディング(UTF-8)を使用
  • データ構造の仮定を文書化

複数のリストを一度に別々の CSV ファイルにエクスポートできますか?

はい。リストをループ処理し、それぞれを別々の CSV として保存できます。

lists = {
    "fruits": ["りんご", "バナナ", "さくらんぼ"],
    "scores": [85, 92, 78]
}

for name, data in lists.items():
    wb = Workbook()
    wb.Worksheets.Clear()
    ws = wb.Worksheets.Add(name)
    for i, val in enumerate(data):
        ws.Range[i + 1, 1].Value = str(val)
    wb.SaveToFile(f"{name}.csv", FileFormat.CSV)
    wb.Dispose()

このアプローチは、複数のデータセットを一括エクスポートする場合に役立ちます。

CSV で数値(通貨、小数点など)をフォーマットするにはどうすればよいですか?

CSV は数値をプレーンテキストとして保存するため、保存前にフォーマットを適用する必要があります。

ws.Range["A1:A10"].NumberFormat = "¥#,##0"

これにより、数値が CSV で ¥1,234 として表示されます。詳細な数値フォーマットオプションについては、Python で数値フォーマットを設定を参照してください。

CSV 形式は XLSX と比較してフォーマットサポートが限られていることに注意してください。豊富なフォーマットが必要な場合は、代わりに Excel 形式で保存することを検討してください。

Spire.XLS for Python はすべてのオペレーティングシステムで動作しますか?

はい!Spire.XLS for Python はクロスプラットフォームであり、Windows、macOS、Linux システムをサポートしています。このライブラリは可能な限り純粋な Python 実装を使用しており、異なる環境間での互換性を確保しています。

行の長さが一貫していないリストを処理するにはどうすればよいですか?

2次元リストを変換する際、すべての行が同じ数の列を持っていることを確認してください。

# 短い行を空の文字列でパディング
max_cols = max(len(row) for row in data)
for row in data:
    while len(row) < max_cols:
        row.append("")

これにより、出力 CSV で列のずれを防ぎます。

1次元リストの変換にヘッダーを追加できますか?

はい。データを書き込む前にヘッダー行を挿入するだけです。

worksheet.Range[1, 1].Value = "項目"  # ヘッダー
for i, item in enumerate(data_list):
    worksheet.Range[i + 2, 1].Value = item  # データは行2から開始

これにより、CSV 出力にラベル付きの列が作成されます。

Workbook の SaveToFile() と Worksheet の SaveToFile() の違いは何ですか?

  • Workbook.SaveToFile(): 全体のワークブック(すべてのワークシート)をファイルに保存
  • Worksheet.SaveToFile(): 特定のワークシートのみを保存し、カスタム区切り文字とエンコーディングを許可

カスタム設定を使用した CSV 変換の場合、最大限の柔軟性のために Worksheet.SaveToFile(delimiter, encoding) を使用してください。

Published in 変換
Tagged under

Python を使用した TXT から CSV への変換チュートリアル

Python でデータを扱う際、TXT を CSV に変換するニーズは非常に一般的です。TXT ファイルは非構造のプレーンテキストとして保存されることが多く、プログラムでの処理が難しい場合があります。一方、CSV ファイルはデータを行と列に整理して格納するため、データ分析、レポート作成、アプリケーション間での共有に適しています。

テキストデータをより扱いやすく構造化するため、開発者は TXT ファイルの内容を解析し、表形式に整理して CSV に変換する必要があります。しかし、この処理を手動で行うのは非効率でミスも発生しやすく、特に複数ファイルや複雑な区切り文字を扱う場合は問題が顕著になります。

本ガイドでは、Spire.XLS for Python を使用し、Python で TXT ファイルを CSV 形式に変換する一連の処理フローを構築する方法を解説します。実務において拡張性と実用性を兼ね備えたアプローチです。

クイックナビゲーション


CSV ファイルとは

CSV(Comma-Separated Values)は、表形式データを保存するためのシンプルなテキストベースのファイル形式です。各行が1レコードを表し、行内の値はカンマ(またはタブやセミコロンなどの区切り文字)で区切られます。

CSV は、Excel、Google スプレッドシート、データベース、Python などのプログラミング言語で広くサポートされています。そのシンプルな構造により、データのインポート、エクスポート、分析、自動処理が容易に行えます。

CSV ファイルの例:

Name, Age, City
John, 28, New York
Alice, 34, Los Angeles
Bob, 25, Chicago

このような構造化形式は効率的なデータ処理を可能にし、非構造の TXT ファイルからの変換に適しています。


前提条件

開始する前に、以下を準備してください:

  • Python 3.x がインストールされていること

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

    pip install Spire.XLS
    

    または、Spire.XLS for Python をダウンロード して手動でプロジェクトに追加することもできます。

  • Python コードを作成するためのテキストエディターまたは IDE


ステップ1:単一の TXT ファイルを CSV に変換

Python で TXT ファイルを CSV に変換する処理はシンプルで、以下の手順で実行できます:

  1. テキストファイルの読み込み:TXT ファイルを読み込み、行単位でデータを取得します
  2. データの分割:スペースやタブ、カンマなどの区切り文字で各行をフィールドに分割します
  3. CSV への書き込み:Spire.XLS を使用して処理済みデータを CSV ファイルとして出力します
  4. 結果の確認:Excel、Google スプレッドシート、またはテキストエディターで確認します

Python で TXT を CSV に変換

以下のコードは、Python を使用して TXT ファイルを CSV にエクスポートする方法を示します:

from spire.xls import *

# TXT ファイルを読み込む
with open("data.txt", "r", encoding="utf-8") as file:
    lines = file.readlines()

# 各行をスペースで分割して処理(必要に応じて区切り文字を変更)
processed_data = [line.strip().split() for line in lines]

# Excel ワークブックを作成
workbook = Workbook()
# 最初のワークシートを取得
sheet = workbook.Worksheets[0]

# 処理済みデータをワークシートに書き込む
for row_num, row_data in enumerate(processed_data):
    for col_num, cell_data in enumerate(row_data):
        # セルにデータを書き込む
        sheet.Range[row_num + 1, col_num + 1].Value = cell_data

# ワークシートを CSV ファイルとして保存(UTF-8 エンコーディング)
sheet.SaveToFile("TxtToCsv.csv", ",", Encoding.get_UTF8())
# リソースを解放
workbook.Dispose()

以下は変換結果のイメージです:

Python で Spire.XLS を使用して TXT を CSV に変換した結果

コードの説明

  • open():UTF-8 エンコーディングで TXT ファイルを読み込み
  • readlines():すべての行をリストとして取得
  • strip().split():空白を削除し、スペースで分割
  • Workbook():新しい Excel ワークブックを作成
  • Worksheets[0]:最初のワークシートにアクセス
  • Range[row, col].Value:指定セルにデータを書き込み
  • SaveToFile():カンマ区切りで CSV として出力
  • Dispose():メモリリーク防止のためリソースを解放

データがすでにリスト形式になっている場合は、Spire.XLS for Python を使用して、そのリストを Excel や CSV ファイルに変換することもできます。


ステップ2:複数 TXT ファイルの一括変換を自動化

複数の TXT ファイルを自動的に CSV に変換する場合、フォルダー内のすべての .txt ファイルをループ処理して順番に変換できます。

TXT ファイルの一括 CSV 変換

以下のコードは、複数の TXT ファイルを一括で CSV に変換する方法を示します:

import os
from spire.xls import *

# TXT ファイルが格納されているフォルダー
input_folder = "txt_files"
output_folder = "csv_files"

# 出力フォルダーが存在しない場合は作成
os.makedirs(output_folder, exist_ok=True)

# 単一ファイルを変換する関数
def convert_txt_to_csv(file_path, output_path):
    # TXT ファイルを読み込む
    with open(file_path, "r", encoding="utf-8") as f:
        lines = f.readlines()
    
    # 各行を処理(スペース区切り。必要に応じて変更)
    processed_data = [line.strip().split() for line in lines if line.strip()]
    
    # ワークブックを作成し、最初のワークシートを取得
    workbook = Workbook()
    sheet = workbook.Worksheets[0]
    
    # データを書き込み
    for row_num, row_data in enumerate(processed_data):
        for col_num, cell_data in enumerate(row_data):
            sheet.Range[row_num + 1, col_num + 1].Value = cell_data
    
    # CSV として保存(UTF-8)
    sheet.SaveToFile(output_path, ",", Encoding.get_UTF8())
    workbook.Dispose()
    print(f"Converted '{file_path}' -> '{output_path}'")

# フォルダー内のすべての TXT ファイルを処理
for filename in os.listdir(input_folder):
    if filename.lower().endswith(".txt"):
        input_path = os.path.join(input_folder, filename)
        output_name = os.path.splitext(filename)[0] + ".csv"
        output_path = os.path.join(output_folder, output_name)
        
        convert_txt_to_csv(input_path, output_path)

ポイント

  • os.makedirs():出力フォルダーを作成
  • 関数化:再利用可能な変換ロジック
  • os.listdir():フォルダー内のファイルを列挙
  • endswith(".txt"):TXT ファイルのみ対象
  • os.path.splitext():拡張子を除いたファイル名を取得
  • 一括処理:すべての TXT ファイルを自動変換

この方法により、大量のファイルを扱う際の作業効率が大幅に向上します。


TXT から CSV への変換に関する応用テクニック

テキストファイルを CSV に変換する際は、ファイルのレイアウトの違いや想定外のエラーが発生する可能性があります。以下のポイントを押さえることで、さまざまなケースに柔軟かつ安定して対応できます。

1. 区切り文字(デリミタ)の違いに対応する

すべての TXT ファイルがスペース区切りとは限りません。タブ、カンマ、またはその他の文字が使用されている場合は、split() 関数の引数を適切に変更する必要があります。

タブ区切りファイル(.tsv)の場合:

processed_data = [line.strip().split('\t') for line in lines]

カンマ区切りの場合:

processed_data = [line.strip().split(',') for line in lines]

カスタム区切り文字(例:|)の場合:

processed_data = [line.strip().split('|') for line in lines]

このように事前に正しく列分割を行うことで、CSV 出力時のデータ構造を正確に保つことができます。


2. エラーハンドリングの追加

ファイルの読み込み・書き込み処理では、例外処理(try-except)を導入することが重要です。これにより、スクリプトの安定性が向上し、予期しないクラッシュを防ぐことができます。

try:
    # 変換処理
    with open("data.txt", "r", encoding="utf-8") as file:
        lines = file.readlines()
    # ... 続きの処理
except FileNotFoundError:
    print("エラー:指定されたファイルが見つかりません。")
except Exception as e:
    print(f"エラー:{e}")

補足: エラーメッセージはできるだけ具体的に記述すると、原因特定が容易になります。


3. 空行のスキップ

TXT ファイルには空行が含まれている場合があります。そのまま処理すると、CSV に空行が出力されてしまいます。

processed_data = [line.strip().split() for line in lines if line.strip()]

このように条件を付けてフィルタリングすることで、実データのみを処理し、よりクリーンな CSV を生成できます。


TXT から CSV 変換時によくある問題と対策

TXT から CSV への変換は一見シンプルですが、実際にはいくつかの実務的な課題が存在します。

1. 区切り文字の不統一

同一ファイル内でも、行ごとに異なる区切り文字が使われている場合があります。その結果、列がずれてしまうことがあります。

対策:

  • 全行で区切り文字の一貫性を確認する
  • 複雑な場合は正規表現(regex)を使用する
  • 前処理で区切り文字を統一する

2. 列数の不一致(不足・過剰)

行によって列数が異なると、データの整合性が崩れます。

対策:

  • 不足している列には空文字を補完する
  • 不要な列は必要に応じて切り捨てる
  • 書き込み前に列数を検証する

3. エンコーディングの問題

TXT ファイルは UTF-8、ASCII、Latin-1 など異なるエンコーディングで保存されている場合があります。これにより文字化けが発生する可能性があります。

対策:

  • chardet などのライブラリでエンコーディングを検出する
  • ファイル読み込み時にエンコーディングを明示する
  • CSV 出力は UTF-8 を使用して互換性を確保する

4. 特殊文字や引用符の扱い

カンマ、引用符、改行などを含むフィールドは、CSV の構造を破壊する可能性があります。

対策:

  • 特殊文字を適切にエスケープする
  • 必要に応じてフィールドを引用符で囲む
  • (Spire.XLS を使用しない場合)CSV 専用ライブラリを利用する

5. 大規模ファイルの処理性能

非常に大きな TXT ファイルを扱う場合、メモリ使用量が増大する可能性があります。

対策:

  • ファイル全体を一度に読み込まず、行単位で処理する
  • ストリーミング処理を導入する
  • ワークブックは速やかに破棄(Dispose)してメモリを解放する

6. 空白やフォーマットのばらつき

余分なスペースや不統一なフォーマットは、データ品質に影響します。

対策:

  • 各フィールドの前後の空白を削除する
  • 内部のスペースを正規化する
  • 前処理で不要な文字を除去する

これらのポイントを事前に考慮することで、より信頼性の高い TXT → CSV 変換ワークフロー を構築できます。


まとめ

TXT ファイルを CSV に変換する処理は、単なるファイル形式の変換ではなく、テキストデータの読み込み・解析・構造化を含む一連のプロセスです。

Python と Spire.XLS を組み合わせることで、安定性と拡張性を兼ね備えた TXT → CSV 変換パイプライン を効率よく構築できます。これにより、データ前処理の自動化が大幅に容易になります。

この手法は、ログファイル、データエクスポート、各種テキストデータを分析・レポート・スプレッドシート連携用に構造化する場面で特に有効です。

Spire.XLS for Python を使用することで、以下が実現できます:

  • 少ないコードで単一の TXT ファイルを CSV に変換
  • 複数ファイルの一括変換を自動化
  • さまざまな区切り文字やエッジケースに対応
  • UTF-8 による多言語対応の確保

より詳細に機能を評価したい場合や制限を解除したい場合は、30日間の無料トライアル を利用できます。


FAQ

Microsoft Excel がインストールされていなくても TXT を CSV に変換できますか?

はい。Spire.XLS for Python は Microsoft Excel に依存せずに動作するため、Excel がインストールされていない環境でも CSV ファイルの生成・出力が可能です。

Python で複数の TXT ファイルを一括で CSV に変換するにはどうすればよいですか?

フォルダー内のすべての TXT ファイルをループ処理し、各ファイルに対して変換関数を適用します。本記事では、指定ディレクトリ内の .txt ファイルを自動処理するサンプルコードを紹介しています。

TXT ファイルに空行や不正な行がある場合はどう処理すればよいですか?

if line.strip() のような条件で空行を除外し、さらに列数の検証ロジックを追加することで、不整合や空行の出力を防ぐことができます。

タブ区切りやカスタム区切りの TXT ファイルはどのように CSV に変換できますか?

TXT ファイルの区切り文字に応じて、split() の引数を変更します。例えば、タブ(\t)、カンマ、パイプ(|)などに対応するには、split('\t')split(',')split('|') のように指定します。

TXT から CSV への変換で推奨されるエンコーディングは何ですか?

UTF-8 の使用が推奨されます。多言語文字に対応でき、さまざまな環境・アプリケーションとの互換性を確保できます。

TXT を CSV ではなく Excel に変換することはできますか?

はい。Spire.XLS for Python を使用すれば、TXT ファイルを XLSX / XLS 形式に直接変換することも可能です。詳細は関連チュートリアルを参照してください。

Published in 変換
Tagged under

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