はい、私が見ているプロセスは次のとおりです。
1) Excel スプレッドシートから XML データとスキーマ ファイルを作成します。このリファレンスを参照してください。
2) XML スキーマをクライアントの Excel スプレッドシートにインポートします。このリファレンスを参照してください。
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 ドキュメントにインポートします。
それはかなりむき出しであり、私はしばらくこれを行っていないため、それ以降、Excel のバージョン バンプ全体でいくつかの特定の手順が変更されている可能性があります。XSLT は非破壊的 (入力ソース ドキュメントを変更せず、新しい結果ドキュメントを出力するだけ) であるため、最後のステップは変換の外で実行する必要があります。
また、XSLT 拡張関数 exsl:node-set() を使用します。使用しているツール (IE など) によっては、MSXSL 拡張バージョンに切り替える必要がある場合があります。
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
と
msxsl:node-set()
それぞれ。