2010-06-23 2 views
1

C#을 사용하여 Excel 파일을 XML 문서로 변환하는 방법은 무엇입니까?Excel to C#

+1

당신은 Excel을 사용합니다. –

+0

"XML 문서"는 조금 광범위합니다. 일단이 스프레드 시트가 XML 형식이면 어떻게 할 계획입니까? 디스크에 저장 하시겠습니까? 그것을 변형 시키시겠습니까? 표시 하시겠습니까? 그것을 파스? 내가 생각할 수있는 몇 가지 대답은 사용 시나리오에 따라 다릅니다. –

답변

2

최신 Office 형식은 어쨌든 XML 문서입니다 (Excel이 "xlsx"로 저장 한 다음 XML 문서로 저장하는 경우).

(이 충분하지 않으면, 당신은 아마 당신이 찾고있는 XML 스키마의 종류를 설명해야한다.)

+3

사실, 명확성을 위해서 : .xlsx는 내부에 많은'xml' 문서가있는'ZIP' 파일입니다. – Aren

+0

사과. 변환 후 xml을 디스크에 저장해야합니다. – ryan

+0

어느 Xml? 명시된 바와 같이, (새 버전) 오피스 파일에는 어쨌든 XML 문서가 포함되어 있습니다. 이것을 디스크에 저장했다면 xml을 디스크에 저장했습니다. XML 문서에 포함될 것으로 예상되는 내용을 아직 설명하지 않았습니다. –

3

당신은 그렇게 할 수있는 .NET 프레임 워크를 사용할 수 있습니다. 나는 빠른 Google 검색 나를 엑셀 시트를 읽는 방법을 보여 this example있어. 시트를 오브젝트에 저장하면 here처럼 해당 오브젝트를 XML로 직렬화 할 수 있습니다.

0

나는 엑셀 (.XLSX) 파일의 시트에서 XML을 만들려면이 방법을 사용하십시오

// Using an OleDbConnection to connect to excel 
var cs = [email protected]"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={excelFile};Extended Properties=""Excel 12.0 Xml; HDR = Yes; IMEX = 2"";Persist Security Info=False"; 
var con = new OleDbConnection(cs); 
con.Open(); 

// Using OleDbCommand to read data of the sheet(sheetName) 
var cmd = new OleDbCommand($"select * from [{sheetName}$]", con); 
var ds = new DataSet(); 
var da = new OleDbDataAdapter(cmd); 
da.Fill(ds); 

// Convert DataSet to Xml 
using (var fs = new FileStream(xmlFile, FileMode.CreateNew)) 
{ 
    using (var xw = new XmlTextWriter(fs, Encoding.UTF8)) 
    { 
     ds.WriteXml(xw); 
    } 
}