2012-03-20 3 views
1

Microsoft Excel에서 열 수있는 XML 파일에 데이터를 저장하는 것과 관련하여 질문이 있습니다. Visual C++에서 MFC를 사용하여 보고서 컨트롤을 작성했으며 간단한 CSV (쉼표로 구분 된 값) 파일을 사용하여 데이터를 Excel로 내보내고 있습니다. CSV 방식은 Excel의 모든 행과 열을 보고서에 표시하므로 효과적입니다.Excel에서 열 수 있도록 XML로 데이터 내보내기

그러나 CSV 메서드는 데이터를 내보낼 때 데이터 형식을 무시하므로 Excel에서 열렸던 문자열의 모든 셀을 표시하므로 각 열의 데이터 형식을 저장해야하는 경우 문제가 발생합니다. 내 클라이언트가 Excel에서 내 보낸 (또는 열 때) 보고서 데이터에서 매크로를 실행하면 보고서의 셀 데이터 유형이 중요합니다.

XML을 사용하여이 문제를 극복하기를 바랍니다. 서식 및 스키마를 제공하므로 XML로 데이터 형식을 저장할 수 있습니까? 사용자 지정 응용 프로그램이 XML을 사용하여 데이터 형식을 유지하면서 Excel에서 열 수있는 데이터를 저장하도록하는 링크 나 포인터를 알려주시겠습니까?

미리 감사드립니다.

+0

죄송합니다, 당신을 위해 내 대답 작업을했다거나 내가 오프 트랙이었다

이 참조? – MiMo

답변

0

당신은 Excel에서이 같은 XML 파일을 작성하고 공개하는 경우 :

<rows> 
    <row> 
    <name>Name 1</name> 
    <number>123.45</number> 
    <date>2012-03-21</date> 
    </row> 
    <row> 
    <name>Name 2</name> 
    <number>678.01</number> 
    <date>2012-03-22</date> 
    </row> 
</rows> 

Excel에서 데이터 유형을 자동 인식하는 꽤 좋은 일을 -는 XML는 관련이 없음을 비록 불평 것 개요.

를 사용하면 XML 스키마 파일 ( rows.xsd) 만든 XML에 스키마를 연결하려면 :

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="rows"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="row" minOccurs="0" maxOccurs="unbounded"> 
      <xs:complexType> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string"/> 
       <xs:element name="number" type="xs:float"/> 
       <xs:element name="date" type="xs:date"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

을 다음 당신은 당신의 XML에 참조 : 당신이 할 수있는 스키마 파일에서

<rows xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="rows.xsd"> 
    <row> 
    <name>Name 1</name> 
    <number>123.45</number> 
    <date>2012-03-21</date> 
    </row> 
    <row> 
    <name>Name 2</name> 
    <number>678.01</number> 
    <date>2012-03-22</date> 
    </row> 
</rows> 

데이터 유형을 지정하고 구조를 설명하십시오. 그러나 항상 평범하지 않은 XSD 구문을 알아야합니다. (그 대신 'XSD'말을해야 'XSL'의 이야기가 있지만 주) http://support.microsoft.com/kb/827294

관련 문제