業務データやレポートは、CSV形式で保存されるケースが多いですが、CSVはそのままでは視認性が低く、印刷や共有にはあまり向いていません。そこで、CSVを整ったレイアウトでPDFファイルに変換して保存しておくと、配布・印刷・アーカイブに非常に便利です。
本記事では、C#でCSVファイルをPDFに変換する方法を紹介します。さらに、表の書式設定やページ設定など、実務で役立つ拡張操作についても解説します。
環境準備
まず、Free Spire.XLS for .NET をプロジェクトに導入します。NuGetパッケージマネージャーを利用:
Install-Package FreeSpire.XLS
CSVをPDFに変換する基本手順
Step 1: CSVファイルを読み込む
Workbook
クラスを利用してCSVを開きます。
using Spire.Xls;
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.csv", ",", 1, 1);
Step 2: 基本変換パラメータの設定
表データが隠れないように列幅を自動調整する設定や、基本的なページ設定など。
for (int i = 1; i <= workbook.Worksheets[0].Columns.Count(); i++)
{
workbook.Worksheets[0].AutoFitColumn(i);
}
workbook.ConverterSetting.SheetFitToPage = true;
Step 2: PDFに変換して保存する
読み込んだワークブックをそのままPDFに保存します。
// 最初のシートを取得
Worksheet sheet = workbook.Worksheets[0];
// PDFに保存
workbook.SaveToFile("Output/CSVtoPDF.pdf", FileFormat.PDF);
これで、CSVファイルをPDF形式に変換できます。
完全なC#コード例
using Spire.Xls;
class Program
{
static void Main(string[] args)
{
// CSV ファイルを読み込む
Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.csv", ",", 1, 1);
// 基本的な変換パラメータを設定する
// 列幅を自動調整(表の内容が隠れないようにする)
for (int i = 1; i <= workbook.Worksheets[0].Columns.Count(); i++)
{
workbook.Worksheets[0].AutoFitColumn(i);
}
workbook.ConverterSetting.SheetFitToPage = true; // 表をページに合わせる
// PDF ファイルに変換する
workbook.SaveToFile("Output/CSVtoPDF.pdf", FileFormat.PDF);
Console.WriteLine("CSV は正常に PDF に変換されました。");
}
}
出力イメージ:
応用例
1. 表のスタイルやフォントを設定
CSVをそのままPDFにすると、見た目がシンプルすぎることがあります。Worksheet
のスタイル機能を使えば、より見やすい表にできます。
Worksheet sheet = workbook.Worksheets[0];
// ヘッダー行を太字に
CellRange header = sheet.Range["A1:D1"];
header.Style.Font.IsBold = true;
header.Style.Color = System.Drawing.Color.LightGray;
// 罫線を追加
sheet.AllocatedRange.Borders.LineStyle = LineStyleType.Thin;
// 列幅を自動調整
sheet.AllocatedRange.AutoFitColumns();
// 再度PDF出力
workbook.SaveToFile("Output/CSVtoPDF_Styled.pdf", FileFormat.PDF);
2. ページサイズや余白を調整
印刷用にPDFを作成する場合、ページレイアウトの調整も重要です。
Worksheet sheet = workbook.Worksheets[0];
// A4横向きに設定
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
sheet.PageSetup.Orientation = PageOrientationType.Landscape;
// 余白設定(単位:インチ)
sheet.PageSetup.TopMargin = 0.5;
sheet.PageSetup.BottomMargin = 0.5;
sheet.PageSetup.LeftMargin = 0.5;
sheet.PageSetup.RightMargin = 0.5;
// 再度PDF出力
workbook.SaveToFile("Output/CSVtoPDF_PageSetup.pdf", FileFormat.PDF);
3. 複数CSVをまとめてPDF化
複数のCSVを1つのPDFにまとめることも可能です。
Workbook mergedWorkbook = new Workbook();
// 1つ目のCSVを読み込み
mergedWorkbook.LoadFromFile("Data1.csv", ",", 1, 1);
// 2つ目以降を追加
Workbook temp = new Workbook();
temp.LoadFromFile("Data2.csv", ",", 1, 1);
mergedWorkbook.Worksheets.AddCopy(temp.Worksheets[0]);
// まとめてPDFに保存
mergedWorkbook.SaveToFile("Output/MergedCSVs.pdf", FileFormat.PDF);
まとめ
本記事では、C#で Free Spire.XLS for .NET を使い、CSVをPDFに変換する方法を紹介しました。基本手順は次の通りです。
- CSVを読み込む
- PDFに変換して保存する
さらに、スタイル設定、ページレイアウト調整、複数CSVをまとめるといった応用操作も実現できます。
この方法を活用すれば、日常業務のCSVデータを見やすいPDFに変換でき、印刷や共有も効率的に行えるようになります。
より詳しい情報は公式ドキュメントをご覧ください: Spire.XLS for .NET チュートリアルセンター