Rechercher : dans
Par :

JAVA - Convertir un file xls to csv

Dernière réponse le 2 fév 2009 à 16:20:30 Gueule d'ange, le 22 fév 2008 à 10:47:05 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un fichier EXCEL nommé 'file.xls', je souhaite développer un programme JAVA pour le convertir en document texte/csv 'file.txt' avec comme séparateur : des tabulations.

Auriez-vous une idée ? Quels sont les imports ?


Cordialement,

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « JAVA Convertir un file xls to csv » dans :
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...
Transformer un fichier Microsoft Excel (.xls) en PDF VoirTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...

1

=[Cvrd]=Tassin, le 22 fév 2008 à 15:30:41

J'utilise deux librairies gratuites trouvées sur le web :

- Une pour lire le fichier Excel : http://poi.apache.org/hssf/index.html
- L'autre pour écrire le fichier CSV (pas nécessairement utile) : http://opencsv.sourceforge.net/

Voici le code :

import au.com.bytecode.opencsv.CSVWriter;

import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

import java.util.Vector;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class TestXLS
{
private POIFSFileSystem fs = null;
private HSSFWorkbook hssfworkbook = null;
private Vector lignes = null;

public TestXLS(String file)
{
try{
fs = new POIFSFileSystem(new FileInputStream(file));

hssfworkbook = new HSSFWorkbook(fs);
lignes = new Vector();
}
catch(Exception e)
{
System.err.println("Exception constructeur : "+e.getMessage());
System.exit(-1);
}
}

public void lecture()
{
for (int i = 0; i < hssfworkbook.getNumberOfSheets(); i++)
{
HSSFSheet sheet = hssfworkbook.getSheetAt(i);
int rows = sheet.getPhysicalNumberOfRows();
for(int j=0;j<rows;j++)
{
Vector temp = new Vector();
HSSFRow row = sheet.getRow(j);
int cells = row.getPhysicalNumberOfCells();
for(short k=0;k<cells;k++)
{
HSSFCell cell = row.getCell(k);
String value = null;

switch (cell.getCellType())
{
case HSSFCell.CELL_TYPE_FORMULA :
value = cell.getCellFormula();
temp.add(value);
break;
case HSSFCell.CELL_TYPE_NUMERIC :
value = ""+cell.getNumericCellValue();
temp.add(value);
break;
case HSSFCell.CELL_TYPE_STRING :
value = cell.getRichStringCellValue().getString();
temp.add(value);
break;
default : value ="";
}
}
lignes.add(temp);
}
}
}

public void ecrireCSV(String file)
{
CSVWriter writer = null;
try{
writer = new CSVWriter(new FileWriter(file), ';');
for(int i=0;i<lignes.size();i++)
{
Vector temp = (Vector)lignes.get(i);
Object[] entree = (Object[])temp.toArray();
ecrireString(writer, entree);
}
writer.close();
}
catch(IOException ex)
{
System.err.println("Erreur lors de l'écriture : "+ex.getMessage());
}
}

private void ecrireString(CSVWriter writer, Object[] entree){
String[] tab = new String[entree.length];
for(int i=0;i<entree.length;i++)
tab[i] = (String)entree[i];
writer.writeNext(tab);
}

public Vector getLignes(){return lignes;}

public static void main(String[] args)
{
TestXLS test = new TestXLS("D:\\test.xls");
test.lecture();
test.ecrireCSV("D:\\test.txt");
}
}
-- Alex pour vous servir --

Répondre à =[Cvrd]=Tassin

3

merci, le 9 jan 2009 à 11:16:00

Merci beaucoup pour cette source, simple et efficace. Merci

Répondre à merci

2

www.love.com, le 7 oct 2008 à 21:20:13

Salut ca va moi boubakr de agadir msn love_morad58@hotmail.com oki bey bizooooooooooo

Répondre à www.love.com

4

 zett, le 2 fév 2009 à 16:20:30
  • +2

This can help:

import officetools.OfficeFile; // available at dancrintea.ro/xls-to-pdf/
...
FileInputStream fis = new FileInputStream(new File("test.xls"));
FileOutputStream fos = new FileOutputStream(new File("test.csv"));
OfficeFile f = new OfficeFile(fis,"localhost","8100", true);
f.convert(fos,"csv");

All possible conversions:

XLS --> pdf, html, CSV
doc --> pdf, html, txt, rtf
ppt --> pdf, swf
html --> pdf

Répondre à zett
Collection CommentÇaMarche.net