Excel m.m. i PHP

October 8, 2008 · Posted in Udvikling 

I forlængelse af mit forrige indlæg med Zip-filer i PHP kan jeg nævne at de nye Office-produkter faktisk gemmer zip-filer med xml-dokumenter. Prøv fx at omdøbe en .xlsx-fil til .zip og pak den ud.

Jeg vil ikke lige gennemgå hvordan det er bygget op, men jeg har en fil ved navn xl\worksheets\sheet1.xml liggende, og den indeholder bl.a.:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<sheetData>
    <row r="1" spans="1:2">
        <c r="A1">
            <v>100</v>
        </c>
        <c r="B1">
            <v>400</v>
        </c>
    </row>
    <row r="2" spans="1:2">
        <c r="A2">
            <v>200</v>
        </c>
        <c r="B2">
            <v>800</v>
        </c>
    </row>
    <row r="3" spans="1:2">
        <c r="A3">
            <f>SUM(A1:A2)</f>
            <v>300</v>
        </c>
        <c r="B3">
            <f>SUM(B1:B2)</f>
            <v>1200</v>
        </c>
    </row>
</sheetData>

Det er en xml-repræsentation af følgende rækker:

1
2
3
100	400
200	800
300	1200

Hvor den sidste række er en sum af de to ovenstående.

Har man først gennemskuet strukturen er det forholdsvist nemt at lave et PHP-script der kan skrive og læse Excel2007-dokumenter.

Word2007-dokumenter er opbygget på ca. samme måde.

Comments

Leave a Reply





  • Om websmed.dk

    Jeg hedder Morten, og jeg har udviklet webapplikationer siden slutningen af 90'erne.

    Jeg vil her dele ud af min erfaring, og med jævne mellemrum poste nogle tips og tricks, samt løsningsforslag på generelle dagligdags problemstillinger.

    Jeg har en forkærlighed for PHP og MySQL, hvorfor I nok vil se flest indlæg der vedrører den gren af webudvikling.

    Jeg har en anden blog af mere personlig karakter på mbn.dk, hvor I kan finde kontaktmuligheder m.m.

    Mine indlæg vil tit være baseret på problemstillinger i mit daglige virke, eller i mit eget firma MRLYTICS, hvor jeg sælger kundeundersøgelser samt kundedatabaser.

    Denne side er hostet hos slicehost.

  • Skrevet på Twitter