2012-08-14 5 views
1

하나의 Excel 템플릿 (클라이언트가 제공)에서 데이터를 가져 와서 내 자체 Excel 템플릿으로 변환하려고합니다.하나의 Excel 템플릿에서 다른 Excel 템플릿으로 데이터를 변환 하시겠습니까?

기본적으로 클라이언트의 Excel 템플릿에서 필드 이름을 호출하고 일종의 매핑 프로세스를 통해 자체 템플릿의 해당 필드에 값을 가져 오는 변환 (XSLT)을 작성할 수 있어야합니다.

이 할 수있는 방법이 있나요? 예를 들어, 클라이언트는 다음과 같은 열이있을 수 있습니다 : 이름 성 주소 전화 번호

그러나을 내 템플릿 단지 내가 좋겠

성 전화 번호 이름을 가질 수있다 변환을 통해 클라이언트의 Excel 템플릿에있는 세 개의 해당 필드에서 값을 자동으로 가져 오게하려고합니다.

이것이 가능합니까? 그렇다면 어떤 종류의 프로세스 흐름을보고 있습니까?

참고 : Excel 템플릿을 통해 필자는 필드와 셀 값이있는 올바른 형식의 Excel 파일을 의미합니다.

1) 엑셀 스프레드 시트에서 XML 데이터와 스키마 파일을 만듭니다 : 내가보기로

답변

1

네, 여기에 공정입니다. this reference.

을 참조하십시오. 2) XML 스키마를 클라이언트 Excel 스프레드 시트로 가져옵니다. this reference.

을 참조하십시오. 3) 클라이언트 Excel 스프레드 시트를 XML 데이터 파일로도 내 보냅니다.

4) 기본적으로 일거에 두 문서를 통해 변환을 실행

<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:exsl="http://exslt.org/common"> 

    <xsl:variable name="mine" select="document(/path/to/your.xml)"/> 
    <xsl:variable name="client" select="document(/path/to/client.xml)"/> 

    <xsl:variable name="both"> 
    <both> 
     <xsl:copy-of select="exsl:node-set($mine)/> 
     <xsl:copy-of select="exsl:node-set($client)/> 
    </both> 
    </xsl:variable> 

    <xsl:template match="exsl:node-set($both)/whatever> 
    <xsl:apply-templates/> 
    </xsl:template> 

    <!-- More templates here to do what you will with all the data, 
     whether it be copying, sorting first, or etc. --> 
</xsl:stylesheet> 

5) 엑셀 문서로 결과를 다시 가져옵니다.

오히려 벌거숭이입니다. 잠시 후에이 작업을 수행하지 않았으므로 Excel의 버전 범프에서 일부 특정 단계가 변경되었을 수 있습니다. 마지막 단계는 XSLT가 비파괴 적이므로 입력 소스 문서를 수정하지 않고 새로운 결과 문서 만 출력하므로 변환 외부에서 수행해야합니다.

또한 XSLT 확장 함수 인 exsl : node-set (). 당신은 즉, 사용중인 도구에 따라, IE, 당신은 MSXSL 확장 버전으로 전환 할 필요가있다.

xmlns:msxsl="urn:schemas-microsoft-com:xslt" 

각각

msxsl:node-set() 

을.

+0

Amazin 지. 고맙습니다. 나는 이것을 시험해 볼 때까지 기다릴 수 없다! – user1599325

관련 문제