XMLをExcelCSharpに変換する

XML(Extensible Markup Language)はHTMLに似ていますが、オブジェクトの定義に異なるタグを使用します。ソフトウェアやハードウェアツールに依存せずにデータを保存および転送するために使用されます。場合によっては、さらに処理するために、XMLからExcel(XLSXまたはXLS)にデータをエクスポートする必要があります。 Excelファイルは、データの保存と整理に広く使用されています。この記事では、C#を使用してXMLをExcelに変換する方法を学習します。

この記事では、次のトピックについて説明します。

  1. C#XMLからExcelへのコンバーターAPI
  2. XMLをExcelに変換
  3. 特定の列をXMLからExcelにエクスポート

C#XMLからExcelへのコンバーターAPI

XMLをExcelに変換するには、Aspose.Cells for .NETAPIを使用します。これは、Microsoft Excelアプリケーションを必要とせずに、プログラムでExcel自動化機能を実行できる機能豊富で強力なAPIです。

APIのWorkbookクラスは、Excelスプレッドシートを表します。ネイティブExcelファイルを開いて保存することができます。また、他のワークブックからデータをコピーし、2つのワークブックを結合して、Excelスプレッドシートを保護する方法も提供します。このクラスでは、ImportXml()メソッドを使用してXMLデータファイルをブックにインポートできます。このクラスのsave()メソッドを使用すると、指定した形式でブックを保存できます。

APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。

PM> Install-Package Aspose.Cells

C#でXMLをExcelに変換する

以下の手順に従って、XMLデータファイルをExcelブックに簡単に変換できます。

  1. Workbookクラスのインスタンスを作成します。
  2. ImportXml()メソッドを呼び出して、XMLファイルをインポートします。
  3. Save()メソッドを使用してブックをXLSXファイルとして保存します。出力ファイルのパスを引数として取ります。

以下のコード例は、C#を使用してXMLをExcelに変換する方法を示しています。

// このコード例は、ExcelでXMLデータファイルをインポートする方法を示しています。
// データフォルダのパス
var dataDir = @"C:\Files\";

// Workbookクラスのインスタンスを作成します
Workbook workbook = new Workbook();

// XMLをワークブックにインポートする
// XMLファイルのパス、宛先シート名、宛先の行と列を引数として取ります。
workbook.ImportXml(dataDir + "Catalog.xml", "Sheet1", 0, 0);

// ブックをXLSXとして保存します
workbook.Save(dataDir + "data_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
C#でXMLをExcelに変換する

C#でXMLからExcelに特定の列をエクスポートする

データをテーブルにレンダリングするには、HTMLレイアウトでXSLTファイルを作成する必要があります。 XSLファイルは、XMLドキュメントを他のドキュメントタイプに変換し、出力をフォーマットするために使用できるスタイルシートです。 Excelに変換するために必要な列のみをXSLTファイルに含めます。これを行うのに役立つXSLファイルは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template match="/">
		<html>
			<body>
				<h2>My CD Collection</h2>
				<table border="1">
					<tr bgcolor="#9acd32">
						<th style="text-align:left">Title</th>
						<th style="text-align:left">Artist</th>
						<th style="text-align:left">Price</th>
					</tr>
					<xsl:for-each select="catalog/cd">
						<tr>
							<td>
								<xsl:value-of select="title"/>
							</td>
							<td>
								<xsl:value-of select="artist"/>
							</td>
							<td>
								<xsl:value-of select="price"/>
							</td>
						</tr>
					</xsl:for-each>
				</table>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

以下の手順に従って、XMLデータファイルからExcelブックに特定の列を取得できます。

  1. まず、File.ReadAllText()メソッドを使用してXMLファイルを読み取ります。
  2. 次に、File.ReadAllText()メソッドを使用してXSLTファイルを読み取ります。
  3. 次に、XslCompiledTransformクラスインスタンスを使用してXMLコンテンツを変換します。
  4. その後、AutoFitRowsやAutoFitColumnsなどのさまざまなワークシート設定を指定します。
  5. Save()メソッドを使用してブックをXLSXファイルとして保存します。出力ファイルのパスを引数として取ります。

以下のコード例は、C#を使用して特定の列をXMLからExcelに変換する方法を示しています。

// このコード例は、ExcelのXMLデータファイルから特定の列をインポートする方法を示しています。
// データフォルダのパス
var dataDir = @"C:\Files\";

// XMLファイルの内容を読む
var XmlContent = File.ReadAllText(dataDir + "Catalog.xml");

// XSLTファイルの内容を読む
var XsltContent = File.ReadAllText(dataDir + "CatalogXSLX.xslt");

// XMLを変換し、MemoryStreamでコンテンツを取得します
var xmlContent = TransformXml(XmlContent, XsltContent);

// ブックを作成する
var workbook = new Workbook(xmlContent);
workbook.Worksheets[0].AutoFitRows();
workbook.Worksheets[0].AutoFitColumns();

// ブックをXLSXとして保存します
workbook.Save(dataDir + "SpecificColumnsData_xml.xlsx", Aspose.Cells.SaveFormat.Auto);
C#でXMLをExcelに変換する

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしでライブラリを試すことができます。

結論

この記事では、C#でXMLファイルからExcelにデータをインポートする方法を学びました。また、XMLファイルから特定の列データを抽出してプログラムでExcelに変換する方法も確認しました。さらに、ドキュメントを使用して、Aspose.Cells for .NET APIについて詳しく知ることができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目