Ik heb een spreatsheet in excel welke ik graag wil kunnen uitlezen op een linux bak als website als onderdeel van een site. Nu ben ik aan het zoeken gegaan en dingen over parsers gelezen.
Mijn proef xml ziet er als volgt uit, door excel gegenereerd:
Nu heb ik gezocht op PHP.net en daar het ik het volgende gevonden:
Alleen dit werkt dus niet. Ik heb geen id waarom niet. Het hoeft alleen de data van dat werkblad weer te geven. Later splits ik dingen wel uit. Ik heb ook overal rondgekeken op php.net, phpfreakz.nl, phpbuilder.com en of course GoT.
Mijn proef xml ziet er als volgt uit, door excel gegenereerd:
code:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
| <?xml version="1.0"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> <Author>John</Author> <LastAuthor>John</LastAuthor> <Created>2004-06-18T13:21:09Z</Created> <Version>10.4219</Version> </DocumentProperties> <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> <DownloadComponents/> <LocationOfComponents HRef="file:///\\"/> </OfficeDocumentSettings> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>8700</WindowHeight> <WindowWidth>15195</WindowWidth> <WindowTopX>0</WindowTopX> <WindowTopY>120</WindowTopY> <ProtectStructure>False</ProtectStructure> <ProtectWindows>False</ProtectWindows> </ExcelWorkbook> <Styles> <Style ss:ID="Default" ss:Name="Normal"> <Alignment ss:Vertical="Bottom"/> <Borders/> <Font/> <Interior/> <NumberFormat/> <Protection/> </Style> </Styles> <Worksheet ss:Name="Test"> <Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="11" x:FullColumns="1" x:FullRows="1"> <Row> <Cell><Data ss:Type="String">Nummer</Data></Cell> <Cell><Data ss:Type="String">Letter</Data></Cell> <Cell><Data ss:Type="String">Kleur</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">1</Data></Cell> <Cell><Data ss:Type="String">a</Data></Cell> <Cell><Data ss:Type="String">rood</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">2</Data></Cell> <Cell><Data ss:Type="String">b</Data></Cell> <Cell><Data ss:Type="String">wit</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">3</Data></Cell> <Cell><Data ss:Type="String">c</Data></Cell> <Cell><Data ss:Type="String">blauw</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">4</Data></Cell> <Cell><Data ss:Type="String">d</Data></Cell> <Cell><Data ss:Type="String">zwart</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">5</Data></Cell> <Cell><Data ss:Type="String">e</Data></Cell> <Cell><Data ss:Type="String">geel</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">6</Data></Cell> <Cell><Data ss:Type="String">f</Data></Cell> <Cell><Data ss:Type="String">groen</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">7</Data></Cell> <Cell><Data ss:Type="String">g</Data></Cell> <Cell><Data ss:Type="String">paars</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">8</Data></Cell> <Cell><Data ss:Type="String">h</Data></Cell> <Cell><Data ss:Type="String">rose</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">9</Data></Cell> <Cell><Data ss:Type="String">i</Data></Cell> <Cell><Data ss:Type="String">bruin</Data></Cell> </Row> <Row> <Cell><Data ss:Type="Number">0</Data></Cell> <Cell><Data ss:Type="String">j</Data></Cell> <Cell><Data ss:Type="String">grijs</Data></Cell> </Row> </Table> <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> <PageSetup> <PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996" x:Right="0.78740157499999996" x:Top="0.984251969"/> </PageSetup> <Selected/> <Panes> <Pane> <Number>3</Number> <ActiveRow>9</ActiveRow> <ActiveCol>2</ActiveCol> </Pane> </Panes> <ProtectObjects>False</ProtectObjects> <ProtectScenarios>False</ProtectScenarios> </WorksheetOptions> </Worksheet> </Workbook> |
Nu heb ik gezocht op PHP.net en daar het ik het volgende gevonden:
PHP:
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
29
30
31
32
33
34
35
| <?php $file = "data.xml"; $depth = array(); function startElement($parser, $name, $attrs) { global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo " "; } echo "$name\n"; $depth[$parser]++; } function endElement($parser, $name) { global $depth; $depth[$parser]--; } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?> |
Alleen dit werkt dus niet. Ik heb geen id waarom niet. Het hoeft alleen de data van dat werkblad weer te geven. Later splits ik dingen wel uit. Ik heb ook overal rondgekeken op php.net, phpfreakz.nl, phpbuilder.com en of course GoT.
[ Voor 26% gewijzigd door drm op 18-06-2004 16:30 . Reden: [code]-tags toegevoegd ]