Recherche dans un fichier excel avec impression du résultat yermes med el amine

Description

Cet Application permet en premier temps de visualiser un fichier Excel dans un jTable. puis interroger ce dernier comme une table sql. càd effectuer des recherche en remplissant un vecteur represantant le valeurs de chaque champs; si vous voulez ignorer le champs (ne pas afficher dans le resultat) laisser "vide"; si non "*" ou fixer la valeur.

ATTENTION;
avant de compiler vous devez ajouter l'API jxl.jar
si vous utilisez JVM 2EE: veuillez le copier dans le chemin suivant :
C:\Program Files\Java\jdk1.6.0\jre\lib\ext\jxl.jar

Source / Exemple :


package EXCEL ;

import java.text.SimpleDateFormat ;
import java.io.* ;

import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;

import jxl.* ;

import java.util.* ;
import java.util.List ;
import java.util.Timer;
import java.util.TimerTask ;
import java.util.Iterator ;
import java.applet.*;
import java.lang.String.* ;
import java.lang.Object.* ;

import javax.swing.JButton;
import javax.swing.border.* ;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.table.*;
import javax.swing.event.*;
import javax.swing.plaf.basic.*;

/**

  • <p>Titre : Application pour la Recherche dans fichier Excel</p>
  • <p>Description : Cet Application permet en premier temps de visualiser un fichier Excel dans un jTable. puis interroger ce dernier comme une table sql. càd effectuer des recherche en remplissant un vecteur represantant le valeurs de chaque champs; si vous voulez ignorer le champs (ne pas afficher dans le resultat) laisser "vide"; si non "*" ou fixer la valeur </p>
  • <p>Copyright : Copyright (c) 2008</p>
  • <p>Socit : YERMES Mohammed El Amine </p>
  • @version 1.0
  • /
public class Cadre1 extends JFrame { public String[][] grid ; public int columns, rows ; public Sheet sheet ; public String data ; JTabbedPane jTabbedPane1 = new JTabbedPane() ; JOptionPane Message = new JOptionPane() ; JComboBox jComboBox1 ; JPanel jPanel1 = new JPanel() ; JPanel jPanel3 = new JPanel() ; JPanel jPanel4 = new JPanel() ; JTextField jTextField1 = new JTextField() ; JButton jButton1 = new JButton() ; JButton jButtonr = new JButton() ; static JMenuBar jMenuBar1 = new JMenuBar() ; JMenu jMenu1 = new JMenu() ; JMenuItem jMenuItem1 = new JMenuItem() ; public File selectedFile ; public JProgressBar jProgressBar1 = new JProgressBar() ; Border border1; Border border2 ; JScrollPane jScrollPane1 = new JScrollPane() ; JScrollPane jScrollPanef = new JScrollPane() ; public JScrollPane jScrollPaner = new JScrollPane() ; DefaultTableModel model; public Vector vecr = new Vector() ; public DefaultTableModel modelr; public JTable jTabler; JTable jTable1; JTable jTablef ; JLabel jLabel1 = new JLabel() ; JLabel jLabel5 = new JLabel() ; JLabel jLabel6 = new JLabel() ; public Cadre1() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { Cadre1 cadre1 = new Cadre1() ; } private void jbInit() throws Exception { this.setJMenuBar(jMenuBar1); this.setTitle(" -=| ( : | ( : | ( : | ( : | ( : | ( : | ( : | ~~~~ ** YERMES Mohammed EL Amine ** ~~~~ | : ) | :) | : ) | : ) | : ) | : ) | : ) | =- " ) ; this.setBounds(new Rectangle(50, 50, 975, 650)) ; this.addHierarchyListener(new Cadre1_this_hierarchyAdapter(this)) ; this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; this.getContentPane().setLayout(null) ; this.getContentPane().add(jTabbedPane1, null) ; this.getContentPane().add(jPanel4, null) ; this.setVisible(true) ; border1 = BorderFactory.createMatteBorder(2,2,2,2,UIManager.getColor("Menu.selectionBackground")) ; jButton1.setIcon(new javax.swing.ImageIcon("Icones/charger2.png")) ; jButton1.setBounds(new Rectangle(723, 22, 90, 25)) ; jButton1.setFont(new java.awt.Font("SansSerif", 1, 12)); jButton1.setText("Ouvrir") ; jButton1.addActionListener(new Cadre1_jButton1_actionAdapter(this)); jButton1.setBorder(border1) ; jButton1.setFocusPainted(true); jButtonr.setBorder(border1) ; jButtonr.setFocusPainted(true); jButtonr.setText("Rechercher") ; jButtonr.addActionListener(new Cadre1_jButtonr_actionAdapter(this)); jButtonr.setFont(new java.awt.Font("SansSerif", 1, 12)); jButtonr.setBounds(new Rectangle(20, 350, 120, 25)) ; jButtonr.setIcon(new javax.swing.ImageIcon("Icones/search2.png")) ; jTabbedPane1.addTab("Ouvrir",new javax.swing.ImageIcon("Icones/open2.png"), jPanel1) ; jTabbedPane1.setFont(new java.awt.Font("Serif", 1, 14)); jTabbedPane1.setBounds(new Rectangle(5, 30, 950, 550)) ; jPanel1.setLayout(null) ; jTextField1.setBounds(new Rectangle(128, 22, 587, 25)) ; jPanel3.setLayout(null); jPanel3.add(jLabel6, null) ; jPanel3.add(jButtonr, null) ; jPanel3.add(jScrollPanef, null); jPanel4.setBounds(new Rectangle(0, 0, 850, 475)) ; jPanel4.setLayout(null) ; jPanel4.add(jLabel5, null) ; jLabel1.setBounds(new Rectangle(23, 24, 110, 20)) ; jLabel1.setFont(new java.awt.Font("Serif", 1, 16)); jLabel1.setToolTipText(""); jLabel1.setText("Fichier Excel :") ; jLabel5.setBackground(Color.black); jLabel5.setFont(new java.awt.Font("Dialog", 1, 14)); jLabel5.setBounds(new Rectangle(9, 750, 370, 18)); jMenu1.setText(" Fichier ") ; jMenu1.setArmed(false); jMenu1.addMouseListener(new Cadre1_jMenu1_mouseAdapter(this)); jMenu1.setBackground(new Color(49, 106, 154)); jMenu1.setBorder(null); jMenu1.setIcon(new javax.swing.ImageIcon("Icones/Inputs_2.png")); jMenuItem1.setBackground(Color.white); jMenuItem1.setAlignmentY((float) 0.5); jMenuItem1.setText("Ouvrir un fichier Excel"); jMenuItem1.addActionListener(new Cadre1_jMenuItem1_actionAdapter(this)); jMenuItem1.addMouseMotionListener(new Cadre1_jMenuItem1_mouseMotionAdapter(this)); jMenuItem1.addMouseListener(new Cadre1_jMenuItem1_mouseAdapter(this)); jTextField1.setBorder(border1) ; jScrollPane1.setBounds(new Rectangle(4, 52, 940, 450)); jScrollPanef.setBounds(new Rectangle(5, 45, 300, 300)); jTabbedPane1.addTab("Recherche dans le Fichier",new javax.swing.ImageIcon("Icones/search2.png"), jPanel3) ; jScrollPanef.getViewport().add(jTablef, null) ; jTabbedPane1.setBackground(new Color(48, 146, 189)) ; jPanel1.setFont(new java.awt.Font("Monospaced", 1, 14)) ; jPanel1.add(jScrollPane1, null); jPanel1.add(jLabel1, null); jPanel1.add(jButton1, null); jPanel1.add(jTextField1, null); jMenuBar1.setBorder(null) ; jMenuBar1.setBackground(new Color(49, 106, 154)) ; jMenuBar1.add(jMenu1) ; jMenu1.add(jMenuItem1) ; } //============================================================================== void jButtonr_actionPerformed(ActionEvent e) { RECHERCHE rech = new RECHERCHE() ; rech.setBackground(new Color (204,220,248)) ; int nbr = 0, cc = 0, ccc = 0, t = 0 ; Object datar[][] = new Object[0][0] ; String colr[] = {} ; String buff = new String() ; String buff2 = new String() ; String test = new String() ; String str = new String() ; vecr = new Vector() ; modelr = new DefaultTableModel(datar,colr) ; jTabler = new JTable(modelr) ; //remplir les colonnes for (int i = 0; i < columns; i++) { buff = String.valueOf(jTablef.getValueAt(i, 1)).trim() ; vecr.addElement(buff) ; if ( buff != "vide" ) { System.out.println("^NOMBRES DE COLONNES^ :" + jTablef.getValueAt(i, 0) + " "+ i ) ; modelr.addColumn(jTablef.getValueAt(i, 0)) ; positionColumn(jTabler, nbr) ; nbr++ ; } } int ll = 0 ; for (int j = 1; j < rows-1; j++) { if (compare(j)) { jProgressBar1.setValue(rows-rows/j) ; jProgressBar1.setString(String.valueOf(jProgressBar1.getValue())+"%") ; modelr.addRow(colr) ; copie_ligne(j, ll) ; ll++ ; } } jProgressBar1.setValue(100) ; jTabler = new JTable(modelr) ; jScrollPaner.getViewport().add(jTabler, null) ; jTabler.setBorder(border1) ; jTabler.setRowHeight(17) ; jTabler.setRowMargin(1) ; } //============================================================================== // Method: compare // Type de la méthode : boolean // Paramètres : // i int : represente le numéro de la ligne dans le fichier Excel // Déscription : copier la ligne numéro i dans le Fichier Excel avec le Vecteur de Recherche //============================================================================== public boolean compare(int i){ boolean ret = true ; String buf = new String() ; for (int m = 0; m < columns; m++) { buf = String.valueOf(vecr.elementAt(m)).trim() ; if (buf!="vide" && buf !="*" && !buf.equalsIgnoreCase("*")) { if ( !buf.equalsIgnoreCase(grid[i][m].trim()) ) { ret = false ; break ; } } } return ret ; } //============================================================================== // Method: copie_ligne // Type de la méthode : void // Paramètres : // i int : represente le numéro de la ligne dans le fichier Excel // l int : represente le numéro de la ligne dans le jTable de Résultat // Déscription : copier la ligne numéro i dans le tables des résultats dans la ligne l //============================================================================== public void copie_ligne(int i, int l) { int inc = 0 ; for (int m = 0; m < columns; m++){ String buf1 = String.valueOf(vecr.elementAt(m)).trim() ; if (buf1!="vide") { jTabler.setValueAt(grid[i][m], l, inc) ; inc++ ; } } } //============================================================================== void jButton1_actionPerformed(ActionEvent e) { Message.showMessageDialog(null, "Vous venez d'ouvrir un fichier Excel \n Version 97 ou ulterieur", "Avertissement:: B.A.D.R", Message.INFORMATION_MESSAGE); doOpenFile(); } //======================== doOpenfile() ======================================== public void doOpenFile() { JFileChooser chooser = new JFileChooser(); FileFilter filter = new ExtensionFileFilter("Feuille de Calcul EXCEL", new String[] { "xls" }); chooser.setFileFilter(filter); int status = chooser.showOpenDialog(null); if (status == chooser.APPROVE_OPTION) { selectedFile = chooser.getSelectedFile(); jTextField1.setText(selectedFile.getPath()); try { File fp = new File(selectedFile.getPath()); Workbook wb = Workbook.getWorkbook(fp); sheet = wb.getSheet(0); columns = sheet.getColumns(); rows = sheet.getRows(); grid = new String[rows][columns] ; System.out.println("colonne "+columns) ; System.out.println("rows "+rows) ; //===================================== Object data1[][] = new Object[0][0] ; String col1[] = {} ; Object data2[][] = new Object[columns][2] ; String col2[] = {"Colonne","Valeur"} ; model = new DefaultTableModel(data1,col1) ; jTablef = new JTable(data2, col2) ; jScrollPanef.getViewport().add(jTablef, null) ; jTable1 = new JTable(model) ; jTablef.setBorder(border1) ; jTablef.setRowHeight(17) ; jTablef.setRowMargin(1) ; int row = 0 ; int col = 0 ; //Créer autant de colonne que nécéssaire for(col = 0; col < columns; col++) { data = sheet.getCell(col, row).getContents(); jTablef.setValueAt(data, col, 0) ; jTablef.setValueAt("vide", col, 1) ; model.addColumn(data); positionColumn(jTable1,col); } jTable1 = new JTable(model); jScrollPane1.getViewport().add(jTable1, null); //Créer autant de ligne que nécéssaire for (int c =0; c<rows ; c++) model.addRow(col1) ; //remplir le jTable par le fichier for(col = 0; col < columns; col++) { for(row = 1; row < rows; row++) { data = sheet.getCell(col, row).getContents(); jTable1.setValueAt(data, row-1, col) ; grid[row-1][col] = data ; //System.out.println(data) ; } } } catch(Exception ioe) { System.out.println("Error: " + ioe); } } else if (status == JFileChooser.CANCEL_OPTION) { System.out.println(JFileChooser.CANCEL_OPTION); } } //===================== Extention File ========================================= class ExtensionFileFilter extends FileFilter { String description; String extensions[]; public ExtensionFileFilter(String description, String extension) { this(description, new String[] { extension }); } public ExtensionFileFilter(String description, String extensions[]) { if (description == null) { this.description = extensions[0]; } else { this.description = description; } this.extensions = (String[]) extensions.clone(); toLower(this.extensions); } private void toLower(String array[]) { for (int i = 0, n = array.length; i < n; i++) { array[i] = array[i].toLowerCase(); } } public String getDescription() { return description; } public boolean accept(File file) { if (file.isDirectory()) { return true; } else { String path = file.getAbsolutePath().toLowerCase(); for (int i = 0, n = extensions.length; i < n; i++) { String extension = extensions[i]; if ((path.endsWith(extension) && (path.charAt(path.length() - extension.length() - 1)) == '.')) { return true; } } } return false; } } void jMenu1_mouseClicked(MouseEvent e) { } void jMenuItem1_mouseMoved(MouseEvent e) { } void this_hierarchyChanged(HierarchyEvent e) { } public void positionColumn(JTable table,int col_Index) { table.moveColumn(table.getColumnCount()-1, col_Index); } //=============================================================================== class Cadre1_jButton1_actionAdapter implements java.awt.event.ActionListener { Cadre1 adaptee; Cadre1_jButton1_actionAdapter(Cadre1 adaptee) { this.adaptee = adaptee ; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e) ; } } //=============================================================================== class Cadre1_jButtonr_actionAdapter implements java.awt.event.ActionListener { Cadre1 adaptee; Cadre1_jButtonr_actionAdapter(Cadre1 adaptee) { this.adaptee = adaptee ; } public void actionPerformed(ActionEvent e) { adaptee.jButtonr_actionPerformed(e) ; } } //================================================================================ class Cadre1_jMenu1_mouseAdapter extends java.awt.event.MouseAdapter { Cadre1 adaptee; Cadre1_jMenu1_mouseAdapter(Cadre1 adaptee) { this.adaptee = adaptee; } public void mouseClicked(MouseEvent e) { adaptee.jMenu1_mouseClicked(e); } } class Cadre1_jMenuItem1_mouseAdapter extends java.awt.event.MouseAdapter { Cadre1 adaptee; Cadre1_jMenuItem1_mouseAdapter(Cadre1 adaptee) { this.adaptee = adaptee; } public void mouseClicked(MouseEvent e) { } } class Cadre1_jMenuItem1_mouseMotionAdapter extends java.awt.event.MouseMotionAdapter { Cadre1 adaptee; Cadre1_jMenuItem1_mouseMotionAdapter(Cadre1 adaptee) { this.adaptee = adaptee; } public void mouseDragged(MouseEvent e) { } public void mouseMoved(MouseEvent e) { adaptee.jMenuItem1_mouseMoved(e); } } class Cadre1_this_hierarchyAdapter implements java.awt.event.HierarchyListener { Cadre1 adaptee; Cadre1_this_hierarchyAdapter(Cadre1 adaptee) { this.adaptee = adaptee; } public void hierarchyChanged(HierarchyEvent e) { adaptee.this_hierarchyChanged(e); } } void jMenuItem1_actionPerformed(ActionEvent e) { doOpenFile() ; } //======================================================================================================== class RECHERCHE extends JFrame{ JPanel contentPane; JButton jButton1 = new JButton(); int Height,Width,Taille; //Construire le cadre public RECHERCHE() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //Initialiser le composant private void jbInit() throws Exception { this.setVisible(true); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); this.setBounds(130,130,800,500) ; contentPane = (JPanel) this.getContentPane(); jProgressBar1.setBounds(new Rectangle(50, 420, 200, 20)); jProgressBar1.setValue(0) ; jProgressBar1.setStringPainted(true) ; jProgressBar1.setString(String.valueOf(jProgressBar1.getValue())+"%") ; jButton1.setFont(new java.awt.Font("SansSerif", 1, 14)); jButton1.setIcon(new javax.swing.ImageIcon("Icones/kjobviewer2.png")) ; jButton1.setBounds(new Rectangle(320, 410, 150, 40)); jButton1.setText(" Imprimer "); jButton1.addActionListener(new RECHERCHE_jButton1_actionAdapter(this)); jScrollPaner.setBounds(new Rectangle(1, 1, 790, 400)); contentPane.setLayout(null); this.setTitle("Resultat de la Recherche"); contentPane.add(jButton1, null); contentPane.add(jProgressBar1, null); contentPane.add(jScrollPaner, null); } void jButton1_actionPerformed(ActionEvent e) { try { jTabler.print() ; } catch(Exception ie) { System.out.println("Erreur dans l'execution de la commande" + ie.toString()) ; } } } class RECHERCHE_jButton1_actionAdapter implements java.awt.event.ActionListener { RECHERCHE adaptee; RECHERCHE_jButton1_actionAdapter(RECHERCHE adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); } } } //==================================== Fin de la Class principale ====================================== class Cadre1_jMenuItem1_actionAdapter implements java.awt.event.ActionListener { Cadre1 adaptee; Cadre1_jMenuItem1_actionAdapter(Cadre1 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem1_actionPerformed(e); } }

Conclusion :


Aprés avoir effectuer une recherche vous pouvez imprimer le resultat

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.