PythonでExcelファイルをSVGファイルに変換する方法

SVG（Scalable Vector Graphics）はXMLベースのベクター画像フォーマットです。このフォーマットはWeb開発やその他のグラフィックアプリケーションで非常に人気があり、複雑なベクターグラフィックを効率的に表示する方法を提供します。

ウェブページにExcelの表を埋め込む必要がある場合や、Excelシートを使って直接ウェブページを作成する場合、ExcelファイルをSVGファイルに変換することで、直接的なウェブ埋め込みや作成が可能になります。また、SVGファイルはブラウザで直接開いて閲覧することができるため、Excelファイルの内容を編集する必要がない場合、ExcelシートをSVGフォーマットに変換することで、より多くのデバイスでExcelファイルのデータを閲覧できるようになります。

Pythonを使用することで、この変換プロセスを自動化し、効率的なファイル処理を実現できます。この記事では、**Pythonを使用してExcelファイルをSVGフォーマットに変換する方法**を紹介します。

- **[PythonでExcelシートをSVGファイルに変換する方法](#pythonでexcelシートをsvgファイルに変換する方法)**
- **[PythonでExcelチャートシートをSVGファイルに変換する方法](#pythonでexcelチャートシートをsvgファイルに変換する方法)**

この記事で使用する方法は、[Spire.XLS for Python](https://jp.e-iceblue.com/download/spire-xls-for-python.html)を必要とします。PyPIからインストールできます：`pip install Spire.XLS`。

[無料ライセンスの申請](https://www.e-iceblue.com/TemLicense.html)

## PythonでExcelシートをSVGファイルに変換する方法
`Worksheet.ToSVGStream(stream: Stream, firstRow: int, firstColumn: int, lastRow: int, lastColumn: int)`を使用して、ExcelファイルのシートをSVGファイルに変換できます。このメソッドのパラメータを使用して、変換するセルの範囲を指定できます。また、パラメータを0に設定することで、使用されているすべてのセルをSVGファイルに変換することも可能です。
以下は操作手順です。
1. `Workbook`と`Stream`モジュールをインポートします。
2. `Workbook`インスタンスを作成し、`Workbook.LoadFromFile()`メソッドを使用してExcelファイルを読み込みます。
3. Excelファイルのシートをループ処理します：
    - `Workbook.Worksheets.get_Item()`メソッドを使用して現在のシートを取得します。
    - `Stream`オブジェクトを作成します。
    - `Worksheet.ToSVGStream()`メソッドを使用してシートをSVGファイルに変換します。
4. リソースを解放します。

**コード例**
```python
from spire.xls import Workbook, Stream

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

# Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx")

# すべてのワークシートを反復処理
for i in range (0, workbook.Worksheets.Count):
    # ワークシートを取得
    worksheet = workbook.Worksheets.get_Item(i)
    # Streamオブジェクトを作成
    svgStream = Stream("output/SVGs/sheet" + str(i+1) + ".svg")
    # ワークシートをSVGファイルに保存
    worksheet.ToSVGStream(svgStream, 0, 0, 0, 0)
    svgStream.Flush()
    svgStream.Close()

# リソースを解放
workbook.Dispose()
```

変換結果
![PythonでExcelシートをSVGファイルに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/8ed135db-1330-2601-ebee-bfebb9f251d7.png)

## PythonでExcelチャートシートをSVGに変換する方法
チャートシートは特別なシートで、グラフのみが含まれています。`Workbook.GetChartSheetByName()`を使用してブックから指定したシートを取得し、`ChartSheet.ToSVGStream()`を使用してSVGファイルとして保存できます。
以下は操作手順です。
1. `Workbook`と`Stream`モジュールをインポートします。
2. `Workbook`インスタンスを作成し、`Workbook.LoadFromFile()`メソッドを使用してExcelファイルを読み込みます。
3. `Workbook.GetChartSheetByName()`を使用してブックから指定のシートを取得します。
4. `Stream`オブジェクトを作成します。
5. `ChartSheet.ToSVGStream()`を使用してSVGファイルとして保存します。
6. リソースを解放します。

**コード例**
```python
from spire.xls import Workbook, Stream

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

# Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx")

# チャートシートを取得
chartSheet = workbook.GetChartSheetByName("Chart1")

# Streamインスタンスを作成
stream = Stream("output/SVGs/ChartSheetToSVG.svg")

# チャートシートをSVGに変換
chartSheet.ToSVGStream(stream)

# リソースを解放
stream.Close()
workbook.Dispose()
```

変換結果
![PythonでExcelチャートシートをSVGに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/5320f9be-ce14-8b35-3a07-9165bc866f80.png)

この記事では、Pythonを使用してExcelファイルをSVGフォーマットに変換する方法を紹介しました。シートの変換とチャートシートの変換の両方をカバーしています。

さらに多くのExcelファイル処理のコツについては、[Spire.XLS for Pythonのチュートリアル](https://www.e-iceblue.com/Tutorials/Python/Spire.XLS-for-Python/Program-Guide/Spire.XLS-for-Python-Program-Guide-Content.html)をご覧ください。