source: proiecte/ptvs/src/vnsim/network/dsrc/ExcelWriter.java @ 31

Last change on this file since 31 was 31, checked in by (none), 14 years ago
File size: 12.7 KB
Line 
1/************************************************************************************
2 * Copyright (C) 2008 by Politehnica University of Bucharest and Rutgers University
3 * All rights reserved.
4 * Refer to LICENSE for terms and conditions of use.
5 ***********************************************************************************/
6package vnsim.network.dsrc;
7
8import java.io.*;
9import org.dom4j.*;
10import java.util.HashMap;
11import java.util.ArrayList;
12
13public class ExcelWriter
14{
15private File outputFile = null;
16   
17    /** Creates a new instance of JavaExcel */
18    public ExcelWriter() {
19    }
20   
21    //This function writes the SpreadsheetML document to a file
22    public void write(String file,ArrayList<DSRCStatisticComponent> results) throws Exception {
23        outputFile = new File(file);
24        Document doc = DocumentHelper.createDocument();
25        HashMap pmap = new HashMap();
26        pmap.put("progid","Excel.Sheet");
27        doc.addProcessingInstruction("mso-application",pmap);
28        doc.add(this.createElements(results));
29        FileWriter out = new FileWriter(outputFile);
30        doc.write(out);
31        out.flush();
32        out.close();
33    }
34   
35    //This function creates the root of the SpreadsheetML and
36    //populates it with necesary elements.
37    private Element createElements(ArrayList<DSRCStatisticComponent> results) throws Exception {
38        //Create all Elements
39        Element workbook = this.createWorkbook();
40        Element worksheet = this.createWorksheet("Simualtion Data");
41        workbook.add(worksheet);
42       
43        Element table = this.createTable();
44        worksheet.add(table);
45        Element row1 = this.createRow("1");
46        table.add(row1);
47        Element cellA1 = this.createCell();
48        row1.add(cellA1);
49        Element dataA1 = this.createData("String","Received Packets lost/ok");
50        cellA1.add(dataA1);
51       
52        Element row2 = this.createRow("2");
53        table.add(row2);
54        Element cell=this.createCell();
55        row2.add(cell);
56        Element data = this.createData("String","Ok packets");
57        cell.add(data);
58        for(int i=1;i<results.size();i++)
59        {
60            Element cellaux=this.createCell();
61                row2.add(cellaux);
62                Element dataaux = this.createData("Number",Long.toString(results.get(i).getOkPackets()));
63            cellaux.add(dataaux);
64        }
65       
66        Element row3 = this.createRow("3");
67        table.add(row3);
68        Element cell3=this.createCell();
69        row3.add(cell3);
70        Element data3 = this.createData("String","Collision Packets");
71        cell3.add(data3);
72        for(int i=1;i<results.size();i++)
73        {
74            Element cellaux=this.createCell();
75                row3.add(cellaux);
76                Element dataaux = this.createData("Number",Long.toString(results.get(i).getCollisionPackets()));
77            cellaux.add(dataaux);
78        }
79       
80        Element row4 = this.createRow("4");
81        table.add(row4);
82        Element cell4=this.createCell();
83        row4.add(cell4);
84        Element data4 = this.createData("String","Corrupted Packets");
85        cell4.add(data4);
86        for(int i=1;i<results.size();i++)
87        {
88            Element cellaux=this.createCell();
89                row4.add(cellaux);
90                Element dataaux = this.createData("Number",Long.toString(results.get(i).getCorruptedPackets()));
91            cellaux.add(dataaux);
92        }
93       
94        Element row5 = this.createRow("5");
95        table.add(row5);
96        Element cell5=this.createCell();
97        row5.add(cell5);
98        Element data5 = this.createData("String","Lost RX Packets");
99        cell5.add(data5);
100        for(int i=1;i<results.size();i++)
101        {
102            Element cellaux=this.createCell();
103                row5.add(cellaux);
104                Element dataaux = this.createData("Number",Long.toString(results.get(i).getLostRxPackets()));
105            cellaux.add(dataaux);
106        }
107       
108        Element row6 = this.createRow("6");
109        table.add(row6);
110        Element cell6=this.createCell();
111        row6.add(cell6);
112        Element data6 = this.createData("String","Lost TX Packets");
113        cell6.add(data6);
114        for(int i=1;i<results.size();i++)
115        {
116            Element cellaux=this.createCell();
117                row6.add(cellaux);
118                Element dataaux = this.createData("Number",Long.toString(results.get(i).getLostTxPackets()));
119            cellaux.add(dataaux);
120        }
121       
122        Element row7 = this.createRow("7");
123        table.add(row7);
124        Element cell7=this.createCell();
125        row7.add(cell7);
126        Element data7 = this.createData("String","Lost PER Packets");
127        cell7.add(data7);
128        for(int i=1;i<results.size();i++)
129        {
130            Element cellaux=this.createCell();
131                row7.add(cellaux);
132                Element dataaux = this.createData("Number",Long.toString(results.get(i).getLostPerPackets()));
133            cellaux.add(dataaux);
134        }
135       
136        Element row8 = this.createRow("8");
137        table.add(row8);
138        Element cell8=this.createCell();
139        row8.add(cell8);
140        Element data8 = this.createData("String","Lost Weak Packets");
141        cell8.add(data8);
142        for(int i=1;i<results.size();i++)
143        {
144            Element cellaux=this.createCell();
145                row8.add(cellaux);
146                Element dataaux = this.createData("Number",Long.toString(results.get(i).getWeakPackets()));
147            cellaux.add(dataaux);
148        }
149       
150        Element row9 = this.createRow("9");
151        table.add(row9);
152        Element cell9=this.createCell();
153        row9.add(cell9);
154        Element data9 = this.createData("String","Received Packets by transmitter");
155        cell9.add(data9);
156       
157        Element row10 = this.createRow("10");
158        table.add(row10);
159        Element cell10=this.createCell();
160        row10.add(cell10);
161        Element data10 = this.createData("String","FV");
162        cell10.add(data10);
163        for(int i=1;i<results.size();i++)
164        {
165            Element cellaux=this.createCell();
166                row10.add(cellaux);
167                Element dataaux = this.createData("Number",Long.toString(results.get(i).getReceivedFromFV()));
168            cellaux.add(dataaux);
169        }
170       
171        Element row11 = this.createRow("11");
172        table.add(row11);
173        Element cell11=this.createCell();
174        row11.add(cell11);
175        Element data11 = this.createData("String","NFV");
176        cell11.add(data11);
177        for(int i=1;i<results.size();i++)
178        {
179            Element cellaux=this.createCell();
180                row11.add(cellaux);
181                Element dataaux = this.createData("Number",Long.toString(results.get(i).getReceivedFromNFV()));
182            cellaux.add(dataaux);
183        }
184       
185        Element row12 = this.createRow("12");
186        table.add(row12);
187        Element cell12=this.createCell();
188        row12.add(cell12);
189        Element data12 = this.createData("String","LAV");
190        cell12.add(data12);
191        for(int i=1;i<results.size();i++)
192        {
193            Element cellaux=this.createCell();
194                row12.add(cellaux);
195                Element dataaux = this.createData("Number",Long.toString(results.get(i).getReceivedFromLAV()));
196            cellaux.add(dataaux);
197        }
198       
199        Element row13 = this.createRow("13");
200        table.add(row13);
201        Element cell13=this.createCell();
202        row13.add(cell13);
203        Element data13 = this.createData("String","RAV");
204        cell13.add(data13);
205        for(int i=1;i<results.size();i++)
206        {
207            Element cellaux=this.createCell();
208                row13.add(cellaux);
209                Element dataaux = this.createData("Number",Long.toString(results.get(i).getReceivedFromRAV()));
210            cellaux.add(dataaux);
211        }
212       
213        Element row14 = this.createRow("14");
214        table.add(row14);
215        Element cell14=this.createCell();
216        row14.add(cell14);
217        Element data14 = this.createData("String","IRT by transmitter");
218        cell14.add(data14);
219       
220        Element row15 = this.createRow("15");
221        table.add(row15);
222        Element cell15=this.createCell();
223        row15.add(cell15);
224        Element data15 = this.createData("String","FV");
225        cell15.add(data15);
226        for(int i=1;i<results.size();i++)
227        {
228            Element cellaux=this.createCell();
229                row15.add(cellaux);
230                Element dataaux = this.createData("Number",Double.toString(results.get(i).getIRTFromFV()));
231            cellaux.add(dataaux);
232        }
233       
234        Element row16 = this.createRow("16");
235        table.add(row16);
236        Element cell16=this.createCell();
237        row16.add(cell16);
238        Element data16 = this.createData("String","NFV");
239        cell16.add(data16);
240        for(int i=1;i<results.size();i++)
241        {
242            Element cellaux=this.createCell();
243                row16.add(cellaux);
244                Element dataaux = this.createData("Number",Double.toString(results.get(i).getIRTFromNFV()));
245            cellaux.add(dataaux);
246        }
247       
248        Element row17 = this.createRow("17");
249        table.add(row17);
250        Element cell17=this.createCell();
251        row17.add(cell17);
252        Element data17 = this.createData("String","LAV");
253        cell17.add(data17);
254        for(int i=1;i<results.size();i++)
255        {
256            Element cellaux=this.createCell();
257                row17.add(cellaux);
258                Element dataaux = this.createData("Number",Double.toString(results.get(i).getIRTFromLAV()));
259            cellaux.add(dataaux);
260        }
261       
262        Element row18 = this.createRow("18");
263        table.add(row18);
264        Element cell18=this.createCell();
265        row18.add(cell18);
266        Element data18 = this.createData("String","RAV");
267        cell18.add(data18);
268        for(int i=1;i<results.size();i++)
269        {
270            Element cellaux=this.createCell();
271                row18.add(cellaux);
272                Element dataaux = this.createData("Number",Double.toString(results.get(i).getIRTFromRAV()));
273            cellaux.add(dataaux);
274        }
275       
276        Element row19 = this.createRow("19");
277        table.add(row19);
278        Element cell19=this.createCell();
279        row19.add(cell19);
280        Element data19 = this.createData("String","Emergency Messages");
281        cell19.add(data19);
282       
283        Element row20 = this.createRow("20");
284        table.add(row20);
285        Element cell20=this.createCell();
286        row20.add(cell20);
287        Element data20 = this.createData("String","Received");
288        cell20.add(data20);
289        for(int i=1;i<results.size();i++)
290        {
291            Element cellaux=this.createCell();
292                row20.add(cellaux);
293                Element dataaux = this.createData("Number",Long.toString(results.get(i).getEmergencyReceived()));
294            cellaux.add(dataaux);
295        }
296       
297        Element row21 = this.createRow("21");
298        table.add(row21);
299        Element cell21=this.createCell();
300        row21.add(cell21);
301        Element data21 = this.createData("String","Sent");
302        cell21.add(data21);
303        for(int i=1;i<results.size();i++)
304        {
305            Element cellaux=this.createCell();
306                row21.add(cellaux);
307                Element dataaux = this.createData("Number",Long.toString(results.get(i).getEmergencySent()));
308            cellaux.add(dataaux);
309        }
310        return workbook;
311    }
312   
313    private Element createWorksheet(String name) {
314        Element e = DocumentHelper.createElement("Worksheet");
315        e.addAttribute("ss:Name", name);
316        e.setQName(new QName("Worksheet",new Namespace(null,"urn:schemas-microsoft-com:office:spreadsheet")));
317        return e;
318    }
319   
320    private Element createTable() {
321        return DocumentHelper.createElement("ss:Table");
322    }
323   
324    private Element createRow(String index) {
325        Element e = DocumentHelper.createElement("ss:Row");
326        e.addAttribute("ss:Index",index);
327        return e;
328    }
329   
330    private Element createCell() {
331        return DocumentHelper.createElement("ss:Cell");
332    }
333   
334    private Element createData(String type, String data) {
335        Element e = DocumentHelper.createElement("ss:Data");
336        e.addAttribute("ss:Type",type);
337        e.setText(data);
338        return e;
339    }
340   
341    private Element createWorkbook() throws Exception {
342        Element root =  DocumentHelper.createElement("Workbook");
343        //Set up the necessary namespaces
344        root.add(new Namespace("x","urn:schemas-microsoft-com:office:excel"));
345        root.add(new Namespace("ss","urn:schemas-microsoft-com:office:spreadsheet"));
346        root.setQName(new QName("Workbook",new Namespace(null,"urn:schemas-microsoft-com:office:spreadsheet")));
347        return root;
348    }
349   
350}
Note: See TracBrowser for help on using the repository browser.