Bonjour,
j'ai un petit problème.J'aimerais convertir un fichier text ".csv" avec un séparateur ";" en un fichier ".xls".Pourriez-vous m'indiquer le chemin à suivre ou me fournir un petit programme capable de le faire?
Merci d'avance
Bonjour,
j'ai un petit problème.J'aimerais convertir un fichier text ".csv" avec un séparateur ";" en un fichier ".xls".Pourriez-vous m'indiquer le chemin à suivre ou me fournir un petit programme capable de le faire?
Merci d'avance
Je ne suis pas sûr que ce soit le bonne partie du forum pour parler de ça, mais il suffit d'ouvrir le fichier csv avec excel et de l'enregistrer au format xls.
une précision:
le fichier csv est généré par un programme VB6 à partir des informations reccueillies dans une base de données access. Par ailleurs, la machine sur laquelle sera lu le fichier ne dispose de microsoft Excel mais de excelViewer. De plus le seul language permettant de créer une application qui fonctionne sur tous les OS est à mon avis le java.
Quel est l'intérêt, vu que excel (et je pense excelviewer également) sait lire les .csv... non?
Sinon il faut regarder les API pour écrire du XLS (ça existe)... Mais bon c'est un peu inutile pour moi ...
Cette appli sera utilisée sur des machines ne disposant pas de licence excel, c'est pour cette raisonqu'on utilise excelviewer qui est une open source.
Déjà excelviewer ne semble pas être open-source (mais bien gratuit), c'est fait par microsoft...Envoyé par yandoka
Mais de toute façon, excelviewer doit bien lire les .csv, non?
Et pourquoi ne pas utiliser un logiciel réellement open-source, comme open-office (ce qui ne change rien à ta question, c'est capable de lire du .csv aussi)?
Salut,
Si tu veux t'amuser va voir du cote de l'api poi Jakarta HSSF. Cette api permet de construire des fichiers .xls, tu pourra donc generer une feuille excel et la remplir avec tes données.
Juste une petite remarque:
Il me semble que le fichier .csv est justement plus portable que le .xls, c'est dommage de ne pas l'utiliser tel quel. Et je rejoins ®om et julien1311, ton excelviewer doit pouvoir lire le .csv a priori.Envoyé par Yandoka
En tout cas bon courage,
Tif
Merci à tous ceux qui ont essayé de me donner un coup de pouce.Mais comme ma dévise est "d'echec en echec je parviendrai", j'ai fini par trouver comment convertir un fichier cvs en xls. Voici comment j'ai procédé:
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class POI {
private File csv = null;
private HSSFWorkbook wb = null;
private HSSFSheet s = null;
private FileOutputStream out = null;
private File xls = null;
private String ficXLSDestination = null;
public static void main(String[] args) throws IOException {
System.out.println(args[0] + " " + args[1]);
POI p = new POI(args[0], args[1]);
p = null;
}
public File getFichierExcel() {
return xls;
}
public POI(String ficCSVSource, String ficXLSDestination) throws FileNotFoundException {
if (UtilFichiers.isValide(ficCSVSource, "csv")) {
System.out.println("ok");
csv = new File(ficCSVSource);
// TODO verifieParamDestination non vide
// TODO creeClasseur(destination)
if (!ficXLSDestination.equals(null) && !ficXLSDestination.equals("")) {
out = new FileOutputStream(ficXLSDestination);
this.ficXLSDestination = ficXLSDestination;
// create a new workbook
wb = new HSSFWorkbook();
// create a new sheet
s = wb.createSheet();
lireCSV();
}
}
}
private void lireCSV() {
String chaine = "";
String lignes[];
try {
InputStream fic = new FileInputStream(csv);
InputStreamReader isr = new InputStreamReader(fic);
BufferedReader br = new BufferedReader(isr);
int rowNum = 0;
while ((chaine = br.readLine()) != null) {
lignes = chaine.split(";");
HSSFRow r = s.createRow(rowNum);
rowNum += 1;
System.out.println(chaine.length());
for (short i=0 ; i < lignes.length ; i++) {
System.out.println(i);
HSSFCell c = r.createCell(i);
c.setCellValue(new HSSFRichTextString(lignes[i]));
}
System.out.println(chaine);
System.out.println(lignes.length);
}
wb.write(out);
out.close();
isr.close();
xls = new File(ficXLSDestination);
Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\Office11\\XLView.exe " + ficXLSDestination);
} catch (Exception e) {
System.err.println(e);
}
}
}
il me semble que j'avais utilisé une api pour manipuler (créér et récupérer des valeurs) dans un tableau excel. Je crois que l'api était jexcel, mais je viens de rejetter un oeil à cette api et il semble qu'elle soit plus ou moins devenue payante....
Salut wtfu,
C'est une question? Parce ce que sinon Yandoka a utilisé l'api poi Jakarta HSSF (cf. les imports)me semble que j'avais utilisé une api pour manipuler (créér et récupérer des valeurs) dans un tableau excel. Je crois que l'api était jexcel, mais je viens de rejetter un oeil à cette api et il semble qu'elle soit plus ou moins devenue payante....
Cordialement,
Tif
ben la conversion csv -> xls c'est quoi ?
1/ un fichier csv a un séparateur qqconque ( par defaut ";" en francais ,',' en anglais je crois)
2/ le logiciel ( excelviewer) a partir de l'extension sait que le fichier est un csv et il fait des champs avec ce qui est entre ";"
pas besoin de format pour ca !!
Je l'ai fait avec un bete fichier texte ca marche tout seul ...
Partager