0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NEXTSCAPEAdvent Calendar 2024

Day 16

ExcelをPDFに変換する方法あれこれ

Last updated at Posted at 2024-12-15

はじめに

案件で必要になりExcelをPDFに変換する方法を色々調べたので、その結果をざっくりまとめておきます。個別の変換方法に関する解説記事は結構あるんですけど、まとめ記事的なのは意外とないんですよね。

WebAPI

月あたりの変換件数が数万件までは標準の従量課金プランがあって、それを超える場合はカスタマイズ契約が必要になるというパターンが多いです。スモールスタートできるのが嬉しいです。

細かくは説明しきれないので、代表的なAPIサービスへのリンクだけ貼っておきます。

Adobe

ConvertAPI

Nutrient

Cloudmersive

サードパーティライブラリ

中には無償のものもありますが、基本的に有償です。変換回数の制限は無いことが多いですが、その分だけ初期費用やランニングコスト(ライセンス更新・サブスクリプション)は大きくなりがちです。

各プログラミング言語に様々なライブラリがありますが、C#のいくつかをピックアップするにとどめます。

Spire.XLS for .NET

Aspose.Cells for .NET

Syncfusion

Excel to PDF .Net

GemBox.Spreadsheet

LibreOffice

オープンソースのオフィスソフトウェアであるLibreOfficeを使ってコマンドラインでPDF変換を行うこともできます。無料なのでとりあえず試してみると良いと思います。ただ、あんまりきれいには変換できない印象です。

やり方は以下の記事に簡潔にまとまっています。

環境構築が少しめんどくさいですが、コンテナを使えば楽できそうですね。

COMオブジェクト

COMオブジェクトは、プログラムからExcelなどのアプリケーションを操作するための仕組みです。動作するためにはExcelがインストールされている必要があります。そのため、例えばAzure FunctionsなどのPaaS環境では以下のコードは失敗するのでご注意ください。

Excelのライセンスさえあれば追加費用無しで変換できるので、ローカル環境での作業自動化などに適しています。ここではPowerShellとC#だけ例示しますが、Pythonでもwin32comを使えば同じことができます。

PowerShell

メインの処理はこんな感じです。

$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($inputFilePath)
$workbook.ExportAsFixedFormat(0, $outputFilePath)

C#

Visual StudioでプロジェクトにCOM参照を追加し、
ファイル名

using Microsoft.Office.Interop.Excelした上でこんな風に書きます。

var excel = new Application();
var workbook = excel.Workbooks.Open(inputFilePath);
workbook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, outputFilePath);

PowerAutomate × OneDrive

PowerAutomateのOneDriveコネクタを使用する方法もあります。個人のMicrosoftアカウントを使うので、これも個人利用向けのやり方です。ノーコードでできるのでお手軽なのが良いところ。

2024年12月現在、OneDriveコネクタでのファイルの変換はプレビュー機能です。最新の状況は公式ドキュメントをご参照ください。

ちょっとお金はかかりますが、Logic Appsでも全く同じことができます。

image.png

おわりに

ExcelをPDFに変換する方法についてざっと紹介しました。何かの助けになれば幸いです。

念のためですが、実際に動作確認を行って期待通りに変換されるかを必ず確認するようにしてください。僕も色々と試してみましたが、及第点の出来栄えになった方法は半数にも満たなかったです。

他にもおすすめの方法があればぜひコメントで教えてください。無料で高品質で商用利用OKな変換方法、実はどこかにあったりしないんですかね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?