XML(Extensible Markup Language)은 HTML과 유사하지만 객체 정의에 다른 태그를 사용합니다. 소프트웨어나 하드웨어 도구에 의존하지 않고 데이터를 저장하고 전송하는 데 사용됩니다. 경우에 따라 추가 처리를 위해 XML에서 Excel(XLSX 또는 XLS)로 데이터를 내보내야 할 수도 있습니다. Excel 파일은 데이터를 저장하고 구성하는 데 널리 사용됩니다. 이 기사에서는 C#을 사용하여 XML을 Excel로 변환하는 방법을 배웁니다.
이 기사에서는 다음 주제를 다룹니다.
C# XML을 Excel로 변환하는 API
XML을 Excel로 변환하기 위해 Aspose.Cells for .NET API를 사용할 것입니다. Microsoft Excel 응용 프로그램 없이 프로그래밍 방식으로 Excel 자동화 기능을 수행할 수 있는 기능이 풍부하고 강력한 API입니다.
API의 Workbook 클래스는 Excel 스프레드시트를 나타냅니다. 기본 Excel 파일을 열고 저장할 수 있습니다. 또한 다른 통합 문서에서 데이터를 복사하고, 두 통합 문서를 결합하고, Excel 스프레드시트를 보호하는 방법을 제공합니다. 이 클래스를 사용하면 ImportXml() 메서드를 사용하여 XML 데이터 파일을 통합 문서로 가져올 수 있습니다. 이 클래스의 save() 메서드를 사용하면 통합 문서를 지정된 형식으로 저장할 수 있습니다.
API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하십시오.
PM> Install-Package Aspose.Cells
C#에서 XML을 Excel로 변환
아래 단계에 따라 XML 데이터 파일을 Excel 통합 문서로 쉽게 변환할 수 있습니다.
- Workbook 클래스의 인스턴스를 만듭니다.
- ImportXml() 메서드를 호출하여 XML 파일을 가져옵니다.
- 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로 내보내기
테이블에 데이터를 렌더링하려면 HTML 레이아웃으로 XSLT 파일을 만들어야 합니다. XLS 파일은 XML 문서를 다른 문서 유형으로 변환하고 출력 형식을 지정하는 데 사용할 수 있는 스타일 시트입니다. Excel로 변환하는 데 필요한 열만 XSLT 파일에 포함합니다. 이를 수행하는 데 도움이 되는 XLS 파일은 다음과 같습니다.
<?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 통합 문서로 가져올 수 있습니다.
- 먼저 File.ReadAllText() 메서드를 사용하여 XML 파일을 읽습니다.
- 다음으로 File.ReadAllText() 메서드를 사용하여 XSLT 파일을 읽습니다.
- 그런 다음 XslCompiledTransform 클래스 인스턴스를 사용하여 XML 콘텐츠를 변환합니다.
- 그런 다음 AutoFitRows 및 AutoFitColumns와 같은 다양한 워크시트 설정을 지정합니다.
- 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);
무료 라이선스 받기
평가 제한 없이 라이브러리를 사용해 볼 수 있는 무료 임시 라이선스를 얻을 수 있습니다.
결론
이 기사에서는 XML 파일의 데이터를 C#의 Excel로 가져오는 방법을 배웠습니다. 또한 XML 파일에서 특정 열 데이터를 추출하고 프로그래밍 방식으로 Excel로 변환하는 방법도 살펴보았습니다. 또한 문서를 사용하여 .NET API용 Aspose.Cells에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.