All pastes #1217043 Raw Edit

Stuff

public java v1 · immutable
#1217043 ·published 2008-10-02 16:55 UTC
rendered paste body
import java.io.*;import java.io.File;import jxl.*;import jxl.write.*;import java.util.*;import jxl.read.biff.*;import java.util.ArrayList;import java.util.Iterator;import java.util.ListIterator;/** * Classe permettant de travailler avec des fichiers excel au format .xls * @author moi */public class JExcel {	/** Variable faisant reference au classeur excel */	private Workbook workbook;	/** Variable faisant reference aux configurations du classeur excel */	private WorkbookSettings ws;		/** Variable faisant reference aux chemin absolue vers le fichier excel */	private String filename;	public static String path = "/home/xwz/public_html/jexcel/java/webapps/test/WEB-INF/classes/";	/**	 * Constructeur de base	 * @param 	filename	adresse absolue d'un fchier .xls	 * @throws	IOException si le fichier n'existe pas par exemple	 * @throws	BiffException si l'API JExcel a un probleme avec l'ouverture du fichier excel	 */	public JExcel(String filename) throws IOException, BiffException {		this.filename = filename;		this.ws = new WorkbookSettings();		this.ws.setLocale(new Locale("fr", "FR"));		this.workbook = Workbook.getWorkbook(new File(filename),this.ws);	}	/**	 * Destructeur de la classe qui permet de fermer le fichier avant que l'objet soit detruit	 */	protected void finalize() throws Throwable {		this.workbook.close();	}	/**	 * Permet de recuperer la liste des onglets presents dans le fichier excel	 * @return un tableau de String contenant tout les noms des onglets	 */	public String[] getSheetNames(){		String[] names = this.workbook.getSheetNames();		return names;	}	/**	 * Permet de recuperer une liste de nombre dans une colonne dont la lettre est inconnue mais la ligne des en-tete de colonne l'est.	 * @param	tabName nom de l'onglet dans lequel la liste cherchee se citue	 * @param	line		ligne sur laquelle se citue les entetes de colonnes	 * @param title		titre de la colonne a chercher	 * @return une liste de float contenant tout les nombres contenu dans la liste selectionnee	 */	public ArrayList<Double> getHorizontalNumberList(String tabName, int line, String title){		ArrayList<Double> list = new ArrayList<Double>();		// Recherche de la colonne concernee par l'en-tete de colonne souhaitee		Sheet s = this.workbook.getSheet(tabName);		int maxCols = s.getColumns();		Integer col=new Integer(-1);		for(Integer i=0; i<maxCols; i++){			Cell c = (Cell) s.getCell(i,line);			if(c.getType() == CellType.LABEL){				if(c.getContents().equals(title)){					col=i;					col++;					break;				}			}		}		// On cree la liste de tous les nombres de la colonne jusqu'a ce qu'on tombe sur une cellule d'un type different de nombre		Integer i = line+1;		while(col != -1 && i < s.getRows()){			Cell c = (Cell) s.getCell(col,i);			if(c.getType().toString().equals(CellType.NUMBER.toString())){				NumberCell nc = (NumberCell) c;				list.add(nc.getValue());			}else{				//on a trouve une cellule d'un type autre que Number donc on falsifie la condition du while				col = -1;			}			i++;		}		return list;	}}