【Python】 ExcelをTXTに、またはTXTをExcelに変換する

## はじめに
Excelは強力なデータ処理とグラフ作成機能を備えた表計算ファイルであり、TXTはシンプルで汎用性が高く、編集が容易なプレーンテキストファイルです。ExcelをTXTに変換することで、複雑なデータテーブルをテキストとして保存することができ、他のプログラムの読み取りや処理操作が容易になります。一方、TXTをExcelに変換すると、テキストファイルのデータをExcelにインポートして、さらに分析や処理を行うことができます。

この記事では、**Python**と関連ライブラリを使用して**ExcelとTXT形式の変換**を実装する方法を紹介します。
* [PythonでExcelをテキスト(TXT)に変換する](#pythonでexcelをテキストtxtに変換する)
* [Pythonでテキスト(TXT)をExcelに変換する](#pythonでテキストtxtをexcelに変換する)

## ExcelとTXT間の変換のためのPythonライブラリ
以下のガイドでは、サードパーティのライブラリ[**Spire.XLS for Python**](https://www.e-iceblue.com/Introduce/xls-for-python.html)を使用しています。これはXLSやXLSXファイルを処理、読み込み、変換するための強力なPython Excelライブラリです。インストールするには、次のpipコマンドを使用します：
`pip install Spire.XLS`

Python Excelライブラリのインストール方法の詳細については、こちらをご覧ください：

https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Getting-Started/How-to-Install-Spire.XLS-for-Python-in-VS-Code.html


## PythonでExcelをテキスト(TXT)に変換する
ExcelワークシートをTXTファイルに変換する主なメソッドは、**`Worksheet.SaveToFile(fileName: str, separator: str, encoding: Encoding)`** メソッドです。希望の出力ファイル名、セパレータ（カンマ、タブ、セミコロンなど）、エンコード形式（UTF-8、Unicode、ASCIIなど）を指定できます。

以下は、ExcelのXLSまたはXLSXファイルをTXTファイルに変換するPythonのサンプルコードです：
```python
from spire.xls import *
from spire.xls.common import *

# Workbookインスタンスの作成 
workbook = Workbook()

# Excelファイルを読み込む
workbook.LoadFromFile("sample.xlsx")

# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]

# ワークシートをTXTファイルとして保存する
sheet.SaveToFile("ExceltoText.txt", " ", Encoding.get_UTF8())
workbook.Dispose()
```

**出力：**
![ExceltoTXTPython.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/54d3ae3c-1faf-21a9-3f02-32088c4f38f8.png)



## Pythonでテキスト(TXT)をExcelに変換する
Spire.XLS for Pythonを使用してTXTからExcelへの変換を実現するには、まずテキストファイルからデータを読み込み、データを分割し、ExcelのXLSまたはXLSXファイルにインポートする必要があります。

以下は、TXTファイルをExcelのXLSまたはXLSX形式に変換するPythonのサンプルコードです：
```python
from spire.xls import *
from spire.xls.common import *

# テキストファイルを読む
with open('ExceltoText.txt', 'r', encoding='utf-8') as file:
    lines = file.readlines()

# テキストファイルのデータをセパレータで分割し、リストに格納する。
data = [line.strip().split(' ') for line in lines]

# Workbookインスタンスの作成 
workbook = Workbook()

# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]

# データをワークシートに書き込む
for row_num, row_data in enumerate(data):
    for col_num, cell_data in enumerate(row_data):
        sheet.Range[row_num + 1, col_num + 1].Value = cell_data
        # ヘッダー行のフォントを太字にする
        sheet.Range[1, col_num + 1].Style.Font.IsBold = True

# 列幅の自動調整
sheet.AllocatedRange.AutoFitColumns()

# .xlsx（または.xls）ファイルに保存する
workbook.SaveToFile('TextToExcel.xlsx', ExcelVersion.Version2016)
workbook.Dispose()
```

**出力：**

![TXTtoExcelPython.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2811193/a6c28b93-941a-bbc5-d1ab-8124715ac37a.png)

* * *

:pushpin: Python Excelライブラリは[ExcelからCSV](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Conversion/Python-Convert-Excel-to-CSV-and-Vice-Versa.html)、[ExcelからPDF](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Conversion/Python-Convert-Excel-to-PDF.html)、[Excelから画像](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Conversion/Python-Convert-Excel-to-Images.html)、[ExcelからHTML](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Conversion/Python-Convert-Excel-to-HTML-and-Vice-Versa.html)、その他多くのファイルフォーマットへの変換もサポートしています。クリックして他のデモをご覧ください：

https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Spire.XLS-for-Python-Program-Guide-Content.html