2011-10-27 2 views
1

많은 StackOverflow 게시물 및 기타 온라인 포럼에는 이와 비슷한 질문이 있지만 그 중 아무도 실제로 내가 가진 문제를 해결하지 못합니다.Excel에서 XML 내보내기 및 날짜 형식 유지

Excel에서 XML 파일을 내보내고 있습니다. Excel 파일에 날짜가 들어 있습니다. 그러나 XML 파일에서 날짜는 정수로 표시됩니다. 날짜는 1900 년 1 월 1 일 이후로 n 번째 날로 간주됩니다.

XML 파일에서 데이터를 추출하여 웹 페이지에 테이블을 채우려합니다.

솔루션은 두 가지 형태로 나올 수 있습니다 : 1. 자바 스크립트에서 정수를 나타내는 날짜로 변환하는 방법. 2. XML 파일이 Excel 파일에서 형식이 지정된 날짜가되도록 강제하는 방법.

저는 분명히 XML과 자바 스크립트를 사용하는 초심자이므로, 귀하의 도움을 진심으로 감사드립니다. 감사.

+0

당신은 어떻게 XML을 내보내는 : 자신의 스키마를 구축하는 방법의 예를 들어

, 난에서 발견되는이 비디오를 발견? –

+0

개발자 탭에서 내보내기 버튼을 사용하고 있습니다. 나는 Excel 2007을 사용하고 있습니다. –

+0

Excel 파일을 편집 할 수있는 기능이 있습니까 아니면 내보내기 전에 그대로 남아 있어야하는 이유가 있습니까? –

답변

2

Excel에서 XML 내보내기에 사용하는 형식은 추가 된 XML 스키마에 따라 다릅니다. 이것은 으로 명시 적으로이 생성되거나 추가 될 수 있습니다. 또는 귀하의 경우에 의심되는 것처럼 이 암시 적/자동으로에 의해 Excel에서 생성되었습니다.

필자는 두 개의 칼럼을 가지고 있는데, 첫 번째는 날짜 - 시간 형식을 사용하는 XML 스키마를 사용하고, 두 번째는 일반 텍스트이며 Excel (열 형식)의 표현에 대해서만 날짜를 사용합니다.

Screenshot of an excel-sheet with two columns both containing dates

내가 XML로이를 내보낼 때 나는이 개 겉으로는 완전히 다른 결과를 얻을 :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<dataroot> 
    <Tabelle11> 
     <Title_1>2009-10-12T00:00:00.000</Title_1> 
     <Title_2>40098</Title_2> 
    </Tabelle11> 
    <Tabelle11> 
     <Title_1>2000-01-01T00:00:00.000</Title_1> 
     <Title_2>36526</Title_2> 
    </Tabelle11> 
</dataroot> 

내가 "을 Debug.Print ActiveWorkbook.XmlMaps로 예를 들면합니다 (XML-스키마를 확인 (1) .schemas입니다 (1) .XML ")는 단지 I, 전체 파일을하지 니펫 (차분 참조)

첫번째 컬럼 포맷 날짜의 스키마에
<xsd:element name="Title_1" minOccurs="0" od:jetType="datetime" od:sqlSType="datetime" type="xsd:dateTime"> 
    <xsd:annotation> 
     <xsd:appinfo> 
      <od:fieldProperty name="Format" type="10" value="dd.mm.yyyy"/> 
     </xsd:appinfo> 
    </xsd:annotation> 
</xsd:element> 
<xsd:element name="Title_2" minOccurs="0" od:jetType="text" od:sqlSType="nvarchar"> 
    <xsd:annotation> 
     <xsd:appinfo> 
      <od:fieldProperty name="Format" type="10" value="@"/> 
     </xsd:appinfo> 
    </xsd:annotation> 
    <xsd:simpleType> 
     <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="255"/> 
     </xsd:restriction> 
    </xsd:simpleType> 
</xsd:element> 

, 제 I svarchar. 다시 말하지만이 스키마가 자동 생성되므로 Excel에서 XML 데이터를 처리하는 방법을 알지 못할 수도 있습니다 (Excel 2003에서 올바르게 호출 한 경우 스키마가 생성되었음을 나타내는 메시지가 표시됨)

지금 이것을 실현하는 방법 - 특히 기존 파일에서 : 은 XML 스키마 인 (위 참조)을 추출하여 something.xsd로 저장하고 필요에 따라 스키마를 수정 한 다음이 새 스키마를 가져옵니다. Bummer는 매핑을 다시 설정해야합니다 (또는 이것을 시도하십시오 : Excel 2007 XML Source Maps - Refreshing Schemas). 종종 MS Access에서 XML 스키마 (예 : 필수 테이블 생성)를 생성하고 일부 값을 삽입 한 다음 XML로 테이블 exprt (스키마 추가 옵션 선택)를 수행합니다.

이 일반 개요가 진행 방법에 대한 아이디어를 제공하기를 바랍니다.

감사

안드레아스

+0

감사합니다, Andreas. 잠시 로그인하지 않았으므로 응답을받지 못했습니다. 도움을 주셔서 감사합니다. –

2

당신은 예를 들어 자신의 "스키마"를 만드는 경우가 ... 실제로 매우 간단합니다.xml 파일을 만들고 각 행은 다음과 같은 세 가지 데이터 포인트를 갖는 전체 XML 파일을 채우는 구글 분석 데이터가 있다고 가정 :

<date>1/1/2012</date> 
<page>mywebsite.com</page> 
<visits>100000</visits> 

당신은 내보내기 전에 엑셀에 대한 데이터 맵 스키마 등이 XML 파일을 가져올 때 위에서 기술 한 정수를 감을 것이다. 당신이로 대신 스키마를 정의하는 경우에는 :

<date>2012-01-01</date> 
<page>mywebsite.com</page> 
<visits>100000</visits> 

Excel에서 시트에 XML을 구성 할 날짜 요소에 대한 추가 그룹화를 표시합니다. 열 머리글로 값 (format()이 아님)을 사용하면 내보내기 대신 정수 대신 형식이 지정된 날짜가 사용됩니다. 엑셀이나 액세스에서 특별한 .xsd 추출을 할 필요가 없습니다 !! http://www.youtube.com/watch?v=9bat12gH3Qs