01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.files.parsers;
34:
35: import org.apache.poi.hssf.usermodel.HSSFCell;
36: import org.apache.poi.hssf.usermodel.HSSFRow;
37: import org.apache.poi.hssf.usermodel.HSSFSheet;
38: import org.apache.poi.hssf.usermodel.HSSFWorkbook;
39:
40: import org.libresource.core.FileData;
41:
42: import java.util.Iterator;
43:
44: public class EXCELContentParser implements FileContentParser {
45: public String parse(FileData fileData) throws Exception {
46: HSSFWorkbook excelDocument = new HSSFWorkbook(fileData
47: .getInputStream());
48: StringBuffer buffer = new StringBuffer();
49:
50: for (int x = 0; x < excelDocument.getNumberOfSheets(); x++) {
51: HSSFSheet sheet = excelDocument.getSheetAt(x);
52:
53: for (Iterator i = sheet.rowIterator(); i.hasNext();) {
54: HSSFRow row = (HSSFRow) i.next();
55:
56: for (Iterator j = row.cellIterator(); j.hasNext();) {
57: HSSFCell cell = (HSSFCell) j.next();
58:
59: if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
60: buffer.append(cell.getStringCellValue().trim()
61: + " ");
62: }
63:
64: if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
65: buffer.append(String.valueOf(
66: cell.getNumericCellValue()).trim()
67: + " ");
68: }
69: }
70: }
71: }
72:
73: return buffer.toString();
74: }
75: }
|