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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| public void genCSV(String cheminSortie, String NomOnglet, Vector Col,int debLigne, int finLigne) {
CSVWriter writer = null;
//recupere l'onglet
Sheet sheet = wb.getSheet(NomOnglet);
try{
writer = new CSVWriter(new FileWriter(cheminSortie), ';', NO_QUOTE_CHARACTER);
//pour chaque ligne
for(int j=debLigne;j<finLigne;j++)
{
//System.out.println("ligne : "+(j+1));
//vecteur temporaire qui récupère les valeurs des cellules de la ligne j
Vector temp = new Vector();
//recupère la ligne
Row row = sheet.getRow(j);
if (row!=null) {
//pour chaque colonnes selectionnées
for(short k=0;k<Col.size();k++) {
if(row.getCell((Integer) Col.get(k)) != null) {
System.out.println("la cellule n'est pas null");
//recupere la cellule
Cell cell = row.getCell((Integer) Col.get(k));
String value = null;
//traitement selon le type de la cellule
switch (cell.getCellType())
{
case Cell.CELL_TYPE_FORMULA :
double p = Math.pow(10.0, 2);
double val=0;
val = Math.floor(cell.getNumericCellValue()*p)/p;
value = ""+val;
value.replaceAll(" ", "");
if (value.substring(value.length()-2, value.length()).equals(".0")) {
value=value.substring(0, value.length()-2);
}
System.out.println(value);
temp.add(value);
break;
case Cell.CELL_TYPE_NUMERIC :
if(DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
Date date = new Date(cell.getDateCellValue().getTime());
value = ""+sdf.format(date);
}
else if ("0%".equals( cell.getCellStyle().getDataFormatString() )) {
double round2 = Math.pow(10.0, 2);
double val2=0;
val2 = (Math.floor(cell.getNumericCellValue()*round2)/round2)*100;
value = ""+val2;
value.replaceAll(" ", "");
if (value.substring(value.length()-2, value.length()).equals(".0")) {
value=value.substring(0, value.length()-2);
}
System.out.println(value);
}
else {
double p2 = Math.pow(10.0, 2);
double val2=0;
val2 = Math.floor(cell.getNumericCellValue()*p2)/p2;
value = ""+val2;
value.replaceAll(" ", "");
if (value.substring(value.length()-2, value.length()).equals(".0")) {
value=value.substring(0, value.length()-2);
}
System.out.println(value);
}
temp.add(value);
break;
/////////////////////////////////////////////////////////ICI traitement pour les chaines/////////////////////////////////////////////////////////////////
case Cell.CELL_TYPE_STRING :
value = cell.getRichStringCellValue().getString();
value.replaceAll("chr(10)", " ");
value.replaceAll("
", " ");
value.replaceAll("car(10)", " ");
value.replaceAll("char(10)", " ");
value.replaceAll("chr(13)", " ");
value.replaceAll("
", "");
value.replaceAll("car(13)", " ");
value.replaceAll("char(13)", " ");
String RC = System.getProperty("line.separator" );
value.replaceAll(RC," " );
System.out.println(value);
temp.add(value);
break;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
case Cell.CELL_TYPE_BLANK :
value ="";
temp.add(value);
break;
default : value =""; temp.add(value);break;
}
}
else if(row.getCell((Integer) Col.get(k)) == null) {
System.out.println("la cellule est null");
String value = null;
value ="";
System.out.println(value);
temp.add(value);
}
}
//on ajoute la ligne au vecteur qui contient toutes les lignes
this.lignes.add(temp);
}
}
for(int i=0;i<this.lignes.size();i++)
{
System.out.println(this.lignes.size());
Vector temp2 = new Vector((Vector)lignes.get(i));
String[] tab = new String[temp2.size()];
for(int l=0;l<temp2.size();l++) {
tab[l] = (String)temp2.get(l);
System.out.println("insertion "+l+" : "+tab[l]);
}
writer.writeNext(tab);
}
writer.close();
}
catch(IOException ex)
{
System.err.println("Erreur lors de l'écriture : "+ex.getMessage());
}
lignes.removeAllElements();
} |
Partager