XML は異なるシステム間でデータを交換するためによく使用されます。一方、Excel はデータ分析やレポート作成のための広く認識された形式です。XML データを Excel に変換することで、Excel の強力な機能を活用してデータをより効果的に分析し、視覚化できます。この変換プロセスは、金融、医療、e コマースなど、さまざまな業界で重要です。 この記事では、Spire.XLS for .NET を使用して C# で XML を Excel および PDF に変換する方法を学びます。 C# で XML を Excel に変換する C# で XML を 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 を 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(); } } } 一時ライセンスを申請する 結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。