ssiedlerin268: XSL in Excel-Kopfzeile // Uhrzeit in Word

Hallöchen!

Ich dachte zwar, nun sind alle wesentlichen Fragen geklärt, aber noch ni ganz ;)

Zunächst eimal wollte ich gerne in Excel eine Kopfzeile erstellen, die die Seiteanzahl generiert, aber auch eine Firma immer auf jeder Seite anzeigt. Wenn ich das manuell eingebe, ist das soweit in Ordnung. Doch den Firmennamen möchte ich per XSL einbinden, was nicht funktioniert. Der Auszug aus der Excel-XML-Datei ist folgende:

<Header x:Margin="0.51181102362204722" x:Data="&amp;ZHier ist mein Test&amp;RSeite &amp;S"/>

Wenn ich hier nun statt "Hier ist mein Test" etwas wie <xsl:value-of ...> angebe, funktioniert das nicht. Wie kann ich das beheben?

Das war meine eine Frage. Meine zweite Frage ist, wie kann ich in Word eine Uhrzeit einbinden per WordML? Ich habs zwar andersrum probiert, indem ich die Zeit in einem Word-Dokument einfüge und als XML-Datei speicher, doch in der Datei seh ich ja nur noch die Uhrzeit und keinen weiteren Anhaltspunkt, wie das intern abläuft :(

Hoffe, es kann wer helfen!

  1. Hallo,

    Zunächst eimal wollte ich gerne in Excel eine Kopfzeile erstellen, die die Seiteanzahl generiert, aber auch eine Firma immer auf jeder Seite anzeigt. Wenn ich das manuell eingebe, ist das soweit in Ordnung. Doch den Firmennamen möchte ich per XSL einbinden, was nicht funktioniert. Der Auszug aus der Excel-XML-Datei ist folgende:

    <Header x:Margin="0.51181102362204722" x:Data="&amp;ZHier ist mein Test&amp;RSeite &amp;S"/>

    Wenn ich hier nun statt "Hier ist mein Test" etwas wie <xsl:value-of ...> angebe, funktioniert das nicht. Wie kann ich das beheben?

    z.B.: x:Data="{/bla/blub/foo/name_der_firma}"

    Das war meine eine Frage. Meine zweite Frage ist, wie kann ich in Word eine Uhrzeit einbinden per WordML? Ich habs zwar andersrum probiert, indem ich die Zeit in einem Word-Dokument einfüge und als XML-Datei speicher, doch in der Datei seh ich ja nur noch die Uhrzeit und keinen weiteren Anhaltspunkt, wie das intern abläuft :(

    <o:DocumentProperties>  
       <o:Created><xsl:value-of select="current-dateTime()" /></o:Created>  
       <o:LastSaved><xsl:value-of select=" ... " /></o:LastSaved>  
    ...  
    </o:DocumentProperties>
    

    Grüße
    Thomas

    1. Woran liegt es, dass er mir sagt, "Error in XPath Expression ...Unknown XPath Function"?

      Liebe Grüße

      1. Hallo,

        Woran liegt es, dass er mir sagt, "Error in XPath Expression ...Unknown XPath Function"?

        Wer ist "er"?

        Grüße
        Thomas

        1. Wer ist "er"?

          Das sagt mir das XML-Spy, wenn ich die XSL-Transformation durchführen will ;) Die Version 2.0 hab ich jedoch ..soll ja wohl dafür benötigt werden ...

          LG

          1. Hallo,

            »» Wer ist "er"?

            Das sagt mir das XML-Spy, wenn ich die XSL-Transformation durchführen will ;) Die Version 2.0 hab

            Meinst du AltovaXML (?)

            Dann machen wir das doch auf die langsame Art ;-)

            Wie sieht der Teil deines XSLTs aus (ich meine das rund um, wo der Fehler auftritt)und was genau steht denn dort im Attribut "x:Data"?

            Grüße
            Thomas

            1. Wie sieht der Teil deines XSLTs aus (ich meine das rund um, wo der Fehler auftritt)und was genau steht denn dort im Attribut "x:Data"?

              Jap, AltovaXML ;) ...Also, ich möchte die Uhrzeit in eine Fußzeile neben eine Seitenangabe reinschreiben ...da war ich dann soweit ...

              <w:ftr w:type="odd">
                      <w:p>
                           <w:pPr>
                               <w:jc w:val="right"/>
                               <w:pStyle w:val="Footer"/>
                           </w:pPr>
                           <w:r>
                            <w:r>
                             <w:tab/>
                                      <w:t>Seite </w:t>
                           </w:r>
                          <w:r>
                               <w:fldChar w:fldCharType="begin"/>
                           </w:r>
                           <w:r>
                               <w:instrText> PAGE </w:instrText>
                           </w:r>
                          <w:r>
                               <w:fldChar w:fldCharType="separate"/>
                           </w:r>
                           <w:r>
                               <w:rPr>
                                   <w:noProof/>
                               </w:rPr>
                              <w:t>2</w:t>
                           </w:r>
                           <w:r>
                               <w:fldChar w:fldCharType="end"/>
                           </w:r>
                          </w:r>
                          <xsl:value-of select="current-dateTime()" />
                       </w:p>
                  </w:ftr>

              Und nun steht geschrieben: "This file ist not valid. Error in XPath Expression, Uknown XPath Function"...

              Liebe Grüße

              1. Hallo,

                Jap, AltovaXML ;) ...Also, ich möchte die Uhrzeit in eine Fußzeile neben eine Seitenangabe reinschreiben ...da war ich dann soweit ...

                <xsl:value-of select="current-dateTime()" />

                Und nun steht geschrieben: "This file ist not valid. Error in XPath Expression, Uknown XPath Function"...

                Ah, ich dachte es geht jetzt um x:Data="{/bla/blub/foo/name_der_firma}".

                Stelle sicher, dass dein XSLT tatsächlich XSLT 2.0 ist:
                <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" ...>

                uns stelle sicher, dass AltovaXML richtig aufgerufen wird:
                AltovaXML.exe -xslt2 ....

                Bei mir macht AltovaXML keine Probleme.
                Ausgabe von current-dateTime() ist: 2009-03-11T12:02:52+01:00

                Grüße
                Thomas

                1. uns stelle sicher, dass AltovaXML richtig aufgerufen wird:
                  AltovaXML.exe -xslt2 ....

                  Version 2.0 steht in jedem Fall da, wie ich ja bereits erwähnte. Wie kann ich das mit dem Aufrufen anstellen? Ich kenn mich mit dem Programm nicht weiter aus, bin Anfänger ;)

                  LG

                  1. Hallo,

                    »» uns stelle sicher, dass AltovaXML richtig aufgerufen wird:
                    »» AltovaXML.exe -xslt2 ....

                    Version 2.0 steht in jedem Fall da, wie ich ja bereits erwähnte. Wie kann ich das mit dem Aufrufen anstellen? Ich kenn mich mit dem Programm nicht weiter aus, bin Anfänger ;)

                    Die berühmte "Dokumentation lesen" hilft wirklich ungemein.
                    Im dem Verzeichnis (z.B. je nach Version: C:\Programme\Altova\AltovaXML2007 oder C:\Programme\Altova\AltovaXML2008 oder C:\Programme\Altova\AltovaXML2009) wo du AltovaXML installiert hast, gibts eine Hilfe-Datei "AltovaXML.chm" Altenative: http://www.altova.com/de/documents/AltovaXML.pdf (Seite 17 ff.)

                    Grüße
                    Thomas

                    PS: wie startest du denn jetzt die Transformation!?

                    1. PS: wie startest du denn jetzt die Transformation!?

                      Ich nutze den Menüpunkt "XSL" und dann "XSL-Transformation"...

                      1. Hallo ssiedlerin268,

                        Ich nutze den Menüpunkt "XSL" und dann "XSL-Transformation"...

                        Kann die XMLSpy-Version bereits mit XSLT 2.0 umgehen? Schau mal unter "Extras | Optionen... | XSL" nach dem eingestellten Prozessor. Man kann dort auch einen externen Prozessor angeben (AltovaXML oder Saxon für XSLT 2.0). Installiere einen solchen Prozessor ggf. nach. Für AltovaXML 2009 lautet die benötigte Zeile:

                        X:\Pfad_zu\AltovaXML2009\AltovaXML.exe -xslt2 %3 -in %1 -out %2

                        Für Saxon 9 entsprechend:
                        java -jar X:\Pfad_zu\Saxon9\Java\saxon9.jar -xsl:%3 -s:%1 -o:%2

                        Der Rest spielt sich in der IDE wie gewohnt ab.

                        Grüße,
                        Thomas

                        1. Hui,meine Nachricht ist gar nicht angekommen ...naja, wie auch immer...es hatte bereits schon geklappt, aber trotzdem danke ;)
                          Beherrscht denn hier jemand SpreadsheetML?
                          LG

                          1. Hallo,

                            Beherrscht denn hier jemand SpreadsheetML?

                            -> Gib bei Google ein: Office 2003 XML Schemas.
                            -> Suchen lassen
                            -> das erste oder zweite Ergebnis führt dich auf die Downloadseiten von Microsoft, wo du die XSDs und auch die DOKUMENTATION herunterladen kannst

                            In der chm Hilfe Datei, die da beiliegt, gibt es ausreichend Startinformation. Ich hab damit an einem Tag eine adäquate Excel-Ausgabe erzeugen können (und kannte vorher kein SpreadsheetML).

                            Ciao, Frank

                            1. Oja, gudd ...eine adäquate Excel-Ausgabe hab ich auch bereits vor mir liegen ;) ...Es geht nur darum, ein Bild in der Kopfzeile einzufügen ..das ist mein Problem ;)

                              Liebe Grüße, Janin

                              1. SpreadsheetML hat imho keinen Support für irgendwelche komplexen Inhalte wie Bilder, Diagramme, OLE usw. Auch die Office 2003 Xml Schemas nicht. Was du suchst, nennt sich Open Xml Format. Gilt grundsätzlich erstmal für Office 2007. Bei uns kann man diese *.xlsx Dateien aber auch in Office 2003 öffnen (wahrscheinlich ein Office AddIn).

                                Ciao, Frank

            2. Äh, natürlich kommt noch das <w:t> dazu, das hab ich jetzt vor lauter Kopieren vergessen (hab's ja wieder rausgenommen, weil's nicht klappte ;)

              LG