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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
| //Création de la classe principale fenetre.
public class fenetre extends JFrame implements ActionListener
{
//Création de l'objet pan qui est un pannel (où l'on affiche graphiquement nos composants comme les boutons)
private JPanel pan = new JPanel();
//Création de deux objets JButton, qui seront mes deux bouton
private JButton bouton = new JButton(" Créer un fichier ");
private JButton bouton2 = new JButton(" Ouvrir un fichier ");
HSSFCell cellule;
int i = 0;
/*Méthode main qui va créer un objet à partir de notre classe principale. Cet objet va créer un pannel
* graphique : une fenêtre
*/
public static void main(String[] args) throws Exception
{
fenetre fen = new fenetre();
}
//Constructeur de classe, il détermine à l'aide la méthode comment sera paramétré le tout
public fenetre()
{
//Détermine le titre de la fenêtre
this.setTitle("Automate Excel");
//Détermine la taille de la fenêtre
this.setSize(550, 400);
//Permet de centre la fenêtre au centre de l'écran au démarage de l'application
this.setLocationRelativeTo(null);
//Permet de stoper le processus lorsque la croix rouge est cliquée
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Permet d'empêcher le redimensionnement de la fenêtre
this.setResizable(false);
//Ajoute des écoutes sur les boutons. Cela permettra d'agir lorsque les boutons seront cliqués
bouton.addActionListener(this);
bouton2.addActionListener(this);
//Rajoute les deux boutons à notre pannel graphique
pan.add(bouton);
pan.add(bouton2);
//Initialisation du pannel selon les réglages indiqués au dessus
this.setContentPane(pan);
//Rend visible notre pannel (true), si le paramètre était (false) le pannel ne s'afficherait pas.
this.setVisible(true);
}
@Override
//Classe qui va déclencher une action lorsque les écoutes de boutons réagissent à un clique
public void actionPerformed(ActionEvent e)
{
//On déclare un objet qui contient la source du clique (bouton 1 ou 2)
Object source=e.getSource();
//Si notre objet vaut le premier bouton
if(source==bouton)
{
//On lance main1()
try
{
CreerFichier();
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
//sinon
else
{
System.out.println("Deuxième bouton");
/*On créer un objet JFileChooser, qui va permettre à l'utilisateur de chercher sur son ordinateur le
* fichier qu'il veut ouvrir
*/
i = 1;
JFileChooser dialogue = new JFileChooser(new File("."));
PrintWriter sortie;
File fichier;
/*On créer un filtre, qui permet de voir seulement les fichiers en .csv et xls. Le filtre se nomme :
* fichiers Excel
*/
dialogue.addChoosableFileFilter(new FileNameExtensionFilter("fichiers Excel", "xls"));
/*On affiche alors en graphique juste les fichiers filtrés. Soit le contraire de tout accepter, donc on
* utilise le paramètre (false)
*/
dialogue.setAcceptAllFileFilterUsed(false);
//On affiche aussi une autre sélection qui elle affiche tout les fichiers sans filtre
dialogue.setAcceptAllFileFilterUsed(true);
//Si l'utilisateur à sélectionné un fichier
if (dialogue.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)
{
//On créer un objet qui retient le chemin du fichier
fichier = dialogue.getSelectedFile();
try
{
sortie = new PrintWriter
(new FileWriter(fichier.getPath(), true));
//On créer une fenêtre qui confirme à l'utilisateur le fichier qu'il a sélectionné
JOptionPane.showMessageDialog(null, "Vous avez sélectionné : " + dialogue.getSelectedFile().getPath());
// Lecture du fichier excel
InputStream inp = new FileInputStream(fichier.getPath());
// recupère le fichier excel
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(inp));
// Recupére page 1 du fichier xls
HSSFSheet sheet = wb.getSheetAt(0);
// nombre de ligne
int nbLigneFichier1 = sheet.getPhysicalNumberOfRows();
int nombreDeCelluleMax = 0;
for (int ligne = 0; ligne < nbLigneFichier1; ligne++)
{
// recuperation de chaque ligne
HSSFRow row = sheet.getRow(ligne);
// si la ligne contient au moins une cellule
if (row != null)
{
if (row.getPhysicalNumberOfCells() > nombreDeCelluleMax)
nombreDeCelluleMax = row.getPhysicalNumberOfCells();
}
}
//On créer un objet POI pour pouvoir travailler dans le code le fichier ouvert par l'utilisateur
//POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fichier));
int nbColFichier1 = nombreDeCelluleMax;
nombreDeCelluleMax = 0;
// creation du tableau qui va contenir les differentes cellules
String[][] tabFichier1 = new String[nbLigneFichier1][nbColFichier1];
for (int ligne = 0; ligne < nbLigneFichier1; ligne++) {
HSSFRow row = sheet.getRow(ligne);
if (row != null) {
for (int colonne = 0; colonne < nbColFichier1; colonne++) {
HSSFCell cellule = row.getCell(colonne);
//affichage de test
System.out.println(cellule);
}
}
}
inp.close();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
} |
Partager