チュートリアル

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

チュートリアル».NET»Spire.XLS for .NET»変換»C#:XML を Excel と PDF に変換する方法
2024-12-30

C#:XML を Excel と PDF に変換する方法

XML は異なるシステム間でデータを交換するためによく使用されます。一方、Excel はデータ分析やレポート作成のための広く認識された形式です。XML データを Excel に変換することで、Excel の強力な機能を活用してデータをより効果的に分析し、視覚化できます。この変換プロセスは、金融、医療、e コマースなど、さまざまな業界で重要です。

この記事では、Spire.XLS for .NET を使用して C# で XML を Excel および PDF に変換する方法を学びます。

Spire.XLS for .NET をインストールします

まず、Spire.XLS for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.XLS

XML 構造の理解: 要素、属性、データ

XML を Excel に変換する前に、XML ファイルの構造を理解することが重要です。XML は、タグを使用して要素、属性、データを定義するマークアップ言語です。これらのコンポーネントを以下のように分類できます。

  • 要素: XML の基本構成要素で、開始タグと終了タグで定義され、データや他の要素を含むことができます。
<person>
    <name>鈴木美咲</name>
    <age>30</age>
</person>
  • 属性: 要素に関する追加情報を提供します。要素の開始タグ内で指定されます。
<person id="1">
    <name>鈴木美咲</name>
    <age>30</age>
</person>

C# で XML を Excel に変換する

.NET では、XML ファイルを操作するためのクラスを提供する System.Xml.Linq 名前空間を使用できます。主に使用されるクラスは XDocument で、XML ドキュメントを簡単に読み込み、操作できます。

以下はその例です:

  • C#
using System;
using System.Xml.Linq;

class Program
{
    static void Main()
    {
        // XMLファイルを読み込む
        XDocument doc = XDocument.Load("data.xml");
        XElement root = doc.Root;

        // 要素を繰り返し処理する
        foreach (XElement person in root.Elements("person"))
        {
            string name = person.Element("name")?.Value;
            string age = person.Element("age")?.Value;

            // 名前と年齢を出力
            Console.WriteLine($"名前: {name}, 年齢: {age}");
        }
    }
}

ML データを解析した後、次はそのデータを Excel ワークシートにマッピングします。Spire.XLS for .NET を使用して、新しいワークブックを作成し、特定のセルにデータを入力し、さまざまなスタイルや書式設定を適用できます。これには、列の幅を自動調整、テキストの配置調整、ヘッダーを太字にすることが含まれます。

C# で XML を Excel に変換する手順は以下の通りです:

  • System.Xml.Linq ライブラリを使用して XML ファイルからデータを抽出します。
  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets.Add() メソッドを使用してワークシートを追加します。
  • Worksheet.SetValue() メソッドを使用して、抽出したデータをワークシートのセルに書き込みます。
  • ワークシートの外観を向上させるためにスタイルと書式設定を適用します。
  • Workbook.SaveToFile() メソッドを使用して、Excel ファイルとしてワークブックを保存します。

以下のコードは、XML データを読み取り、それを Excel ファイルにインポートする効率的で高度な方法を示しています。

  • C#
using Spire.Xls;
using System.Xml.Linq;

namespace ConvertXmlToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成
            Workbook workbook = new Workbook();

            // デフォルトのワークシートを削除
            workbook.Worksheets.Clear();

            // ワークシートを追加し、名前を付ける
            Worksheet worksheet = workbook.Worksheets.Add("Books");

            // XMLファイルを読み込む
            XDocument xmlDoc = XDocument.Load("Sample.xml");
            XElement xmlRoot = xmlDoc.Root;

            // 最初の"book"要素を取得
            XElement firstBook = xmlRoot.Element("book");

            // ヘッダー情報を抽出してリストに変換
            var headers = firstBook.Elements().ToList();

            // ヘッダーをExcelに書き込む
            for (int colIndex = 0; colIndex < headers.Count; colIndex++)
            {
                string headerText = headers[colIndex].Name.LocalName;
                worksheet.SetValue(1, colIndex + 1, headerText);
            }

            // 他のデータをExcelに書き込む
            int rowIndex = 2;
            foreach (XElement book in xmlRoot.Elements("book"))
            {
                var dataNodes = book.Elements().ToList();
                for (int colIndex = 0; colIndex < dataNodes.Count; colIndex++)
                {
                    string value = dataNodes[colIndex].Value;
                    worksheet.SetValue(rowIndex, colIndex + 1, value);
                }
                rowIndex++;
            }

            // 列の幅を自動調整
            worksheet.AllocatedRange.AutoFitColumns();

            // 配置を設定
            worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;

            // フォントスタイルを設定
            worksheet.Range["A1:F1"].Style.Font.IsBold = true;

            // Excelファイルとして保存
            workbook.SaveToFile("output/XMLToExcel.xlsx");

            // リソースを解放
            workbook.Dispose();
        }
    }
}

C# で XML を Excel に変換した結果

C# で XML を PDF に変換する

前の例では、XML ファイルからデータを Excel ワークシートにインポートする方法を示しました。このワークシートは、その後、Worksheet.SaveToPdf() メソッドを使用して PDF ファイルに変換できます。PDF を構造的に整えるために、ページレイアウト設定(マージンやグリッド線の保持など)を調整することが必要です。

XML を PDF に変換する手順は以下の通りです:

  • System.Xml.Linq ライブラリを使用して XML ファイルからデータを取得します。
  • Workbook オブジェクトを作成します。
  • Workbook.Worksheets.Add() メソッドでワークシートを追加します。
  • Worksheet.SetValue() メソッドを使って XML ファイルから抽出したデータをワークシートのセルに入力します。
  • スタイルや書式設定を適用してワークシートの外観を改善します。
  • PageSetup オブジェクトを使用してページ設定を構成します。
  • Worksheet.SaveToPdf() メソッドを使用してワークシートをPDFとして保存します。

以下のコードスニペットは、XML データをワークシートにインポートし、その後、そのワークシートを PDF ファイルとして保存する方法を示しています。

  • C#
using Spire.Xls;
using Spire.Xls.Core;
using System.Xml.Linq;

namespace ConvertXmlToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // Workbookオブジェクトを作成
            Workbook workbook = new Workbook();

            // デフォルトのワークシートを削除
            workbook.Worksheets.Clear();

            // ワークシートを追加し、名前を付ける
            Worksheet worksheet = workbook.Worksheets.Add("Books");

            // XMLファイルを読み込む
            XDocument xmlDoc = XDocument.Load("Sample.xml");
            XElement xmlRoot = xmlDoc.Root;

            // 最初の"book"要素を取得
            XElement firstBook = xmlRoot.Element("book");

            // ヘッダー情報を抽出してリストに変換
            var headers = firstBook.Elements().ToList();

            // ヘッダーをExcelに書き込む
            for (int colIndex = 0; colIndex < headers.Count; colIndex++)
            {
                string headerText = headers[colIndex].Name.LocalName;
                worksheet.SetValue(1, colIndex + 1, headerText);
            }

            // 他のデータをExcelに書き込む
            int rowIndex = 2;
            foreach (XElement book in xmlRoot.Elements("book"))
            {
                var dataNodes = book.Elements().ToList();
                for (int colIndex = 0; colIndex < dataNodes.Count; colIndex++)
                {
                    string value = dataNodes[colIndex].Value;
                    worksheet.SetValue(rowIndex, colIndex + 1, value);
                }
                rowIndex++;
            }

            // 列の幅を自動調整
            worksheet.AllocatedRange.AutoFitColumns();

            // 配置を設定
            worksheet.AllocatedRange.HorizontalAlignment = HorizontalAlignType.Left;

            // フォントスタイルを設定
            worksheet.Range["A1:F1"].Style.Font.IsBold = true;

            // ページ設定を行う
            workbook.ConverterSetting.SheetFitToPage = true;
            PageSetup pageSetup = worksheet.PageSetup;
            pageSetup.TopMargin = 0.3;
            pageSetup.BottomMargin = 0.3;
            pageSetup.LeftMargin = 0.3;
            pageSetup.RightMargin = 0.3;

            // グリッド線を保持
            pageSetup.IsPrintGridlines = true;

            // PDFとして保存
            worksheet.SaveToPdf("output/XMLToPDF.pdf");

            // リソースを解放
            workbook.Dispose();
        }
    }
}

.NET で XML を PDF に変換した結果

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 33 times