Excel4J excle Kit

A. Mise à jour des documents de

II. Sur la base d'annotations (/src/test/java/modules/Student2.java)

 @ExcelField (title = "numéro d'étudiant", order = 1) privé id long; @ExcelField (title = "name", order = 2) privé nom de chaîne; // écriture convertisseur de données Student2DateConverter @ExcelField (title = "date d'inscription", order = 3, writeConverter = Student2DateConverter.class) Date privée Date; @ExcelField (title = "classe", order = 4) privées des classes entières; // lire le convertisseur de données Student2ExpelConverter @ExcelField (title = "si tiré", order = 5, readConverter = Student2ExpelConverter.class) Expulser private boolean;

III. Lire Excel rapidement réalisé

1 à lire Excel (plans)

2. Le transducteur de lecture (/src/test/java/converter/Student2ExpelConverter.java)

 / ** * Excel si convertisseur de données de la colonne d'expulsion * / public class Student2ExpelConverter implémente ReadConvertible { @Override execRead public Object (objet String) { Object.equals de retour ( "a"); } }

3. fonction de lecture (/src/test/java/base/Excel2Module.java#excel2Object2)

 @test excel2Object2 () {publique vide String path = "D: \ JProject \ Excel4J \ src \ \ test de ressources de la students_02.xlsx"; try { // 1) // annotation ne se fonde pas, de lire le contenu de la liste Excel < liste < chaîne > > Au sein de l'objet liste < liste < chaîne > >  . Listes = ExcelUtils.getInstance () readExcel2List (path, 1, 2, 0); System.out.println ( "lire Excel à un tableau de chaînes:"); pour (Liste < chaîne >  liste: listes) { System.out.println (liste); } // 2) // les notes explicatives, de lire le contenu de la liste Excel < Etudiant2 > Au sein de l'objet // vérifier lecture fonction de conversion Student2ExpelConverter // annotation `@ExcelField (title = "si tiré", order = 5, readConverter = Student2ExpelConverter.class)` liste < Etudiant2 >  étudiants = ExcelUtils.getInstance () readExcel2Objects (chemin, Student2.class, 0, 0) .; System.out.println ( "array objet à lire Excel (support de conversion de type):"); pour (Etudiant2 st: étudiants) { System.out.println (st); } } Catch (Exception e) { e.printStackTrace (); } }

4. Lire les résultats

 Excel pour lire un tableau de chaînes: Pour lire tableau d'objets Excel (support de conversion de type): Etudiant2 {id = 10000000000001, name = 'John Doe', date = Mar 1900:00:00 CST Jan 2016, les classes = 101, expulsent = 'true'} Etudiant2 {id = 10000000000002, name = 'John Doe', date = Ven 17 novembre 10:19:10 CST 2017, les classes = 201, expulsent = 'false'} Etudiant2 {id = 10000000000004, name = 'roi', date = Ven 17 novembre 00:00:00 CST 2017, les classes = 301, expulsent = 'false'}

IV. Export Excel

1. basé sur une exportation rapide de modèle

1) Fonction d'exportation (/src/test/java/base/Module2Excel.java#testList2Excel)

 @test testList2Excel public void () throws Exception { liste < liste < chaîne > >  liste2 = new ArrayList < > (); liste < chaîne >  tête = new ArrayList < > (); pour (int i = 0; i <  10; i ++) { liste < chaîne >  _list = new ArrayList < > (); for (int j = 0; j <  10; j ++) { _list.add (i + "-" + j); } list2.add (_list); header.add (i + "---"); } . ExcelUtils.getInstance () exportObjects2Excel (list2, en-tête, "D: /D.xlsx"); }

2) Effet à l'exportation (screenshots)

2. La fonction d'exportation du convertisseur avec l'écriture

1) convertisseur (/src/test/java/converter/Student2DateConverter.java)

 / ** * Convertisseurs de données Export Excel Date * / public class {Student2DateConverter outils WriteConvertible @Override public Object execWrite (objet Object) { objet Date date = (date); retour DateUtils.date2Str (date, DateUtils.DATE_FORMAT_MSEC_T_Z); } }

2) La fonction d'exportation (/src/test/java/base/Module2Excel.java#testWriteConverter)

 // Vérifier la fonction de conversion de date Student2DateConverter // annotation `@ExcelField (title = "date d'inscription", order = 3, writeConverter = Student2DateConverter.class)` @test testWriteConverter public void () throws Exception { liste < Etudiant2 >  liste = new ArrayList < > (); pour (int i = 0; i <  10; i ++) { list.add (nouveau Etudiant2 (10000L + i, "étudiant" + i, new Date (), 201, false)); } . ExcelUtils.getInstance () exportObjects2Excel (liste, Student2.class, vrai, "sheet0", true, "D: /D.xlsx"); }

3) Effet à l'exportation (screenshots)

3. Liste basée sur un modèle < ojet > exportation

1) Fonction d'exportation (/src/test/java/base/Module2Excel.java#testObject2Excel)

 @test testObject2Excel public void () throws Exception { Chaîne tempPath = "/normal_template.xlsx"; liste < Etudiant1 >  liste = new ArrayList < > (); list.add (nouveau Etudiant1 ( "1010001", "Galien", "sixième année trois quarts de travail")); list.add (nouveau Etudiant1 ( "1010002", "Gul'dan", "Grade trois classes")); list.add (nouvelle Etudiant1 ( "1010003", "Mondo (tiré)", "classe de sixième")); list.add (nouveau Etudiant1 ( "1010004", "Luo Bute", "trois classes de qualité")); list.add (nouveau Etudiant1 ( "1010005", "Aoraki", "trois classes de qualité")); list.add (nouveau Etudiant1 ( "1010006", "obtenir le", "les classes quatre-grade")); list.add (nouveau Etudiant1 ( "1010007", "melon Wazi", "classe de cinquième année")); list.add (nouveau Etudiant1 ( "1010008", "guerre des trois", "classe de deuxième année")); list.add (nouveau Etudiant1 ( "1010009", "John Doe", "une classe de qualité")); carte < String, String >  données = new HashMap < > (); data.put ( "title", "liste War College"); data.put ( "info", "liste uniforme scolaire"); // exportation basé sur un modèle Excel . ExcelUtils.getInstance () exportObjects2Excel (tempPath, 0, liste, données, Student1.class, faux, "D: /A.xlsx"); // ne pas exporter modèle basé sur Excel . ExcelUtils.getInstance () exportObjects2Excel (liste, Student1.class, vrai, null, true, "D: /B.xlsx"); }

2) les modèles d'exportation (Capture d'écran)

3) sur la base des résultats d'exportation de modèle (capture d'écran)

4) ne repose pas sur un modèle Exporter les résultats (captures d'écran)

4. Sur la base du modèle Carte < String, Collection < Object.toString > > exportation

1) Fonction d'exportation (/src/test/java/base/Module2Excel.java#testMap2Excel)

 @test testMap2Excel public void () throws Exception { carte < String, Liste >  cours = new HashMap < > (); carte < String, String >  données = new HashMap < > (); data.put ( "title", "liste War College"); data.put ( "info", "liste uniforme scolaire"); classes.put ( "class_one", new ArrayList < Etudiant1 > () {{ ajouter (nouveau Etudiant1 ( "1010009", "John Doe", "une classe de qualité")); ajouter (nouveaux STUDENT1 ( "1010002", "Gul'dan", "Grade trois classes")); }}); classes.put ( "class_two", new ArrayList < Etudiant1 > () {{ ajouter (nouveau Etudiant1 ( « 1010008 », « guerre des trois », « classe de deuxième année »)); }}); classes.put ( "class_three", new ArrayList < Etudiant1 > () {{ ajouter (nouveau Etudiant1 ( "1010004", "Luo Bute", "trois classes de qualité")); ajouter (nouveaux STUDENT1 ( "1010005", "Aoraki", "trois classes de qualité")); }}); classes.put ( "class_four", new ArrayList < Etudiant1 > () {{ ajouter (nouveau Etudiant1 ( "1010006", "obtenir le", "les classes quatre-grade")); }}); classes.put ( "class_six", new ArrayList < Etudiant1 > () {{ ajouter (nouveaux STUDENT1 ( "1010001", "Galien", "sixième année trois quarts de travail")); ajouter (nouveau Etudiant1 ( "1010003", "Mondo", "classe de sixième")); }}); ExcelUtils.getInstance (). ExportObject2Excel ( "/ map_template.xlsx", 0, les classes, les données, Student1.class, faux, "D: /C.xlsx"); }

2) les modèles d'exportation (Capture d'écran)

3) Exporter les résultats (captures d'écran)

Cinq. Attributs personnalisés modèle Excel ne sont pas sensibles à la casse

1) Voir les définitions de ce code spécifique (/ src / main / java / com / github / crab2died / handler / HandlerConstant)

2) les attributs personnalisés de modèle Excel ne sont pas sensibles à la casse

Description delimiter prioritaire (petites et grandes) $ appoint_line_style ligne actuelle 3 $ single_line_style style style ligne impaire 2 $ double_line_style modèle ligne même 2 $ default_style 1 $ data_index style par défaut insertion de données position de départ - $ étiquette d'identification SERIAL_NUMBER inséré -

VI. Exportation de données multi-feuilles

1. feuille d'emballage d'exportation de données multi, le sac d'emballage voir com.github.sheet.wrapper

données multi-feuilles Dérivée simplement être encapsulées dans des données d'exportation com.github.sheet.wrapper Wrapper dans le multi-feuille à base de paquets peut dériver une clé

2. modèles Non, pas des notes multi-feuilles com.github.sheet.wrapper.SimpleSheetWrapper d'exportation

1) appeler la méthode

 // modèle sans multi-feuille, aucun commentaire Export @test testBatchSimple2Excel public void () throws Exception { // générer la feuille de données liste < SimpleSheetWrapper >  liste = new ArrayList < > (); pour (int i = 0; i < = 2; i ++) { // table des données de contenu liste < Chaîne >  data = new ArrayList < > (); for (int j = 0; j <  1000; j ++) { // lignes de données (ici est un tableau) peuvent également être une liste de données Chaîne rangs = new String ; for (int r = 0; r <  5; r ++) { lignes  = "Sheet_" + i + "row_" + j + "column_" + r; } data.add (lignes); } // En-tête de données liste < chaîne >  tête = new ArrayList < > (); for (int h = 0; h <  5; h ++) { header.add ( "column_" + h); } list.add (nouveau SimpleSheetWrapper (données, en-tête "sheet_" + i)); } . ExcelUtils.getInstance () simpleSheet2Excel (liste, "K.xlsx"); }

2) Exporter les résultats (captures d'écran)

3. Pas de modèles, multi-feuille à base d'annotation-export com.github.sheet.wrapper.NoTemplateSheetWrapper

1) appeler la méthode

 // modèle sans feuilles multiples, l'exportation basées sur les annotations @test testBatchNoTemplate2Excel public void () throws Exception { liste < NoTemplateSheetWrapper >  feuilles = new ArrayList < > (); for (int s = 0; s <  3; s ++) { liste < Etudiant2 >  liste = new ArrayList < > (); pour (int i = 0; i <  1000; i ++) { list.add (nouveau Etudiant2 (10000L + i, "étudiant" + i, new Date (), 201, false)); } Sheets.Add (nouvelle NoTemplateSheetWrapper (liste, Student2.class, vrai, "sheet_" + s)); } ExcelUtils.getInstance () noTemplateSheet2Excel (feuilles, "EE.xlsx") .; }

2) Exporter les résultats (captures d'écran)

4. basé sur un modèle d'exportation, com.github.sheet.wrapper.NormalSheetWrapper notes multi-feuilles

1) appeler la méthode (Note: Aux fins de test, le même que la fiche de données respectives)

 // basé sur un modèle, des notes d'exportation à plusieurs feuilles @test testObject2BatchSheet public void () throws Exception { liste < NormalSheetWrapper >  feuilles = new ArrayList < > (); pour (int i = 0; i <  2; i ++) { liste < Etudiant1 >  liste = new ArrayList < > (); list.add (nouveau Etudiant1 ( "1010001", "Galien", "sixième année trois quarts de travail")); list.add (nouveau Etudiant1 ( "1010002", "Gul'dan", "Grade trois classes")); list.add (nouveau Etudiant1 ( "1010003", "Mondo (tiré)", "classe de sixième")); list.add (nouveau Etudiant1 ( "1010004", "Luo Bute", "trois classes de qualité")); list.add (nouveau Etudiant1 ( "1010005", "Aoraki", "trois classes de qualité")); list.add (nouveau Etudiant1 ( "1010006", "obtenir le", "les classes quatre-grade")); list.add (nouveau Etudiant1 ( "1010007", "melon Wazi", "classe de cinquième année")); list.add (nouveau Etudiant1 ( "1010008", "guerre des trois", "classe de deuxième année")); list.add (nouvelle Etudiant1 ( "1010009", "John Doe", "une classe de qualité")); carte < String, String >  données = new HashMap < > (); data.put ( "title", "liste War College"); data.put ( "info", "liste uniforme scolaire"); Sheets.Add (nouveau NormalSheetWrapper (i, liste, données, Student1.class, false)); } Chaîne tempPath = "/normal_batch_sheet_template.xlsx"; // exportation basé sur un modèle Excel . ExcelUtils.getInstance () normalSheet2Excel (feuilles, tempPath, "AA.xlsx"); }

2) modèle dérivé (thème) (Note: Aux fins de test, le modèle de cellules différenciées sensiblement la même couleur)

  • modèle sheet1
  • modèle sheet2
  • 3) Exporter les résultats (captures d'écran)

  • sheet1 Exporter les résultats
  • sheet2 Exporter les résultats
  • 5. Plan de la forme < String, Collection < Object.toString > > Données basées sur un modèle, les notes à plusieurs feuilles exportation com.github.sheet.wrapper.MapSheetWrapper

    1) appeler la méthode (Note: Aux fins de test, le même que la fiche de données respectives)

     Le multi-feuilles // Plan d'exportation de données @test testMap2BatchSheet public void () throws Exception { liste < MapSheetWrapper >  feuilles = new ArrayList < > (); pour (int i = 0; i <  2; i ++) { carte < String, Liste < ? > >  cours = new HashMap < > (); carte < String, String >  données = new HashMap < > (); data.put ( "title", "liste War College"); data.put ( "info", "liste uniforme scolaire"); classes.put ( "class_one", Arrays.asList ( nouvelle Etudiant1 ( "1010009", "John Doe", "première classe de qualité"), nouvelle STUDENT1 ( "1010002", "Gul'dan", "première qualité" trois quarts de travail) )); classes.put ( "class_two", Collections.singletonList ( nouvelle Etudiant1 ( « 1010008 », « guerre des trois », « classe de deuxième année. ») )); classes.put ( "class_three", Arrays.asList ( nouvelle Etudiant1 ( "1010004", "Luo Bute", "trois classes de qualité"), nouvelle STUDENT1 ( "1010005", "Aoraki", "trois classes de qualité") )); classes.put ( "class_four", Collections.singletonList ( nouvelle Etudiant1 ( « 1010006 », « obtenir le », « classe de quatrième année deux ») )); classes.put ( "class_six", Arrays.asList ( nouvelle Etudiant1 ( « 1010001 », « Galien », « sixième année trois quarts de travail »), nouvelle Etudiant1 ( "1010003", "Mondo", "classe de sixième année.") )); Sheets.Add (nouveau MapSheetWrapper (i, les classes, les données, Student1.class, false)); } . ExcelUtils.getInstance () mapSheet2Excel (feuilles, "/map_batch_sheet_template.xlsx", "CC.xlsx"); }

    2) modèle dérivé (thème) (Note: Aux fins de test, le modèle de cellules différenciées sensiblement la même couleur)

  • modèle sheet1
  • modèle sheet2
  • 3) Exporter les résultats (captures d'écran)

  • sheet1 Exporter les résultats
  • sheet2 Exporter les résultats
  • VII. Fichier CSV d'exploitation (support complet pour toutes les configurations ExcelField annotations)

    1. Lecture à base Annotation fichier CSV

    1) appeler la méthode

     // test de lecture des fichiers CSV @test testReadCSV public void () renvoie Excel4JException { liste < Etudiant2 >  liste = ExcelUtils.getInstance () readCSV2Objects ( "J.csv", Student2.class) .; System.out.println (liste); }

    2) lire les résultats

     Etudiant2 {id = 1000001, name = 'John Doe', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 1, expulsent = 'false'} Etudiant2 {id = 1010002, name = 'Gul'dan', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 2, expulsent = 'false'} Etudiant2 {id = 1010003, name = 'Mondo (tiré)', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 6, expulsent = 'false'} Etudiant2 {id = 1010004, name = 'Luo Bute', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 3, expulsent = 'false'} Etudiant2 {id = 1010005, name = 'Aoraki', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 4, expulsent = 'false'} Etudiant2 {id = 1010006, name = 'avoir le', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 4, expulsent = 'false'} Etudiant2 {id = 1010007, name = 'melon Wazi', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 5, expulsent = 'false'} Etudiant2 {id = 1010008, name = 'guerre des trois', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 4, expulsent = 'false'} Etudiant2 {id = 1010009, name = 'John Doe', date = Mer 28 novembre 15:11:12 CST 2018, les classes = 2, expulsent = 'false'}

    2. l'exportation à base d'annotations d'un fichier CSV

    1) appeler la méthode

     // export csv @test testExport2CSV public void () renvoie Excel4JException { liste < Etudiant2 >  liste = new ArrayList < > (); list.add (nouveau Etudiant2 (1000001L, "Joe Smith", new Date (), 1, true)); list.add (nouveau Etudiant2 (1010002L, "Gul'dan", new Date (), 2, false)); list.add (nouveau Etudiant2 (1010003L, "Mondo (tiré)", new Date (), 6, true)); list.add (nouveau Etudiant2 (1010004L, "Luo Bute", new Date (), 3, false)); list.add (nouveau Etudiant2 (1010005L, "Aoraki", new Date (), 4, false)); list.add (nouveau Etudiant2 (1010006L, "ont le" new Date (), 4, false)); list.add (nouveau Etudiant2 (1010007L, "melon Wazi", new Date (), 5, true)); list.add (nouveau Etudiant2 (1010008L, "guerre à trois", new Date (), 4, false)); list.add (nouveau Etudiant2 (1010009L, "John Doe", new Date (), 2, false)); . ExcelUtils.getInstance () exportObjects2CSV (liste, Student2.class, "J.csv"); } // grande quantité de csv exportation de données // 9999999 données de test local est inférieur à 1min @test testExport2CSV2 public void () renvoie Excel4JException { liste < Etudiant2 >  liste = new ArrayList < > (); pour (int i = 0; i <  9999999; i ++) { list.add (nouveau Etudiant2 (1000001L + i, "passants -" + i, new Date (), i% 6, true)); } . ExcelUtils.getInstance () exportObjects2CSV (liste, Student2.class, "L.csv"); }

    2) Résultats Export

     // Ce qui suit est le contenu du fichier CSV exportés ID étudiant, le nom, les dates de fréquentation, classe, que ce soit expulsé 1000001, Joe Smith, 2018-11-28T15: 11: 12.815Z, 1, vrai 1.010.002, Gul'dan, 2018-11-28T15: 11: 12.815Z, 2, faux 1010003, Mondo (tiré), 2018-11-28T15: 11: 12.815Z, 6, vrai 1.010.004, Luo Bute, 2018-11-28T15: 11: 12.815Z, 3, faux 1.010.005, Aoraki, 2018-11-28T15: 11: 12.815Z, 4, faux 1.010.006 aussi le, 2018-11-28T15: 11: 12.815Z, 4, faux 1.010.007, melon Wazi, 2018-11-28T15: 11: 12.815Z, 5, vrai 1.010.008, guerre à trois, 2018-11-28T15: 11: 12.815Z, 4, faux 1010009, John Doe, 2018-11-28T15: 11: 12.815Z, 2, faux

    VIII. Utilisation (JDK1.7 et ci-dessus)

    1) github copie du projet

    > >  git clone https://github.com/Crab2died/Excel4J.git Excel4J > >  package.cmd

    2) La dernière version du maven Citation:

    < dépendance > < groupId > com.github.crab2died < / GroupId > < artifactId > Excel4J < / ArtifactId > < version > 3.0.0-alpha < / version > < / dépendance >

    Adresse git: https: //gitee.com/Crab2Died/Excel4J

    3000000000 comment envoyer des enveloppes rouges pour vous dire comment attraper SAIC Chase
    Précédent
    Demi-pension: Ao Liji arrêté pour briser Ali chanson dépanneuse, Liverpool 1-0 Barcelone
    Prochain
    chanteur, âgé de 29 ans cancer Li Wei a échoué, la défiguration et sans voix, franchement espère juste que je peux vivre jusqu'à Juillet
    Hainan dans le moratoire de la pêche mer de Chine méridionale période 17,496 bateaux de pêche dans le port
    Les gens ne regardent la caméra! Les visiteurs ont été ouverts 10 jours Hanada a été « blessé »
    ressort à base de démarrage / nuage de printemps de projets d'infrastructure udf
    Votre interface de conception, assez élégante pour vous?
    Interview demander MySQL pourrie quatre niveaux d'isolement, en regardant le passage à tabac et interviewer la pendaison!
    Service de livraison de courrier printemps-boot-mail
    plate-forme de services SpringBoot2.x à base de micro-plateforme microservices
    opération Sao à nouveau, 500 $ dans un balai de paquet surprise la fête des mères! Utilisateur: « Maman m'a frappé à nouveau! »
    Aujourd'hui, ce qui provoque chaque paire de mains dures!
    Maotai une jours allé 85 milliards! Les principaux actionnaires sont plus de plaintes de violations des intérêts des sociétés cotées Qu'est-il arrivé?
    pont en verre Gordon ballon à air chaud avec vue sur les fleurs de l'azalée équitation expérience Flying Cloud - Wanda Danzhai ville « May Day » Festival des azalées sans précédent