introduire
Jakarta POI est un ensemble d'API Java pour accéder aux documents formulés à Microsoft. Jakarta POI se compose de nombreux composants, y compris HSSF pour les fichiers de format Excel opérationnels et le HWPF pour le mot de fonctionnement. Parmi les différents composants, seul HSSF pour le fonctionnement de l'excel est relativement mature. Page d'accueil officielle http://poi.apache.org/index.html, documentation API http://poi.apache.org/apidocs/index.html
accomplir
Des commentaires complets ont été ajoutés au code.
import java.io.fileInputStream; import java.io.fileoutputStream; import java.io.inputStream; import java.io.outputstream; import java.util.arraylist; import java.util.list; import org.apache.poi. org.apache.poi.hssf.usermodel.hssfcellstyle; import org.apache.poi.hssf.usermodel.hssfrow; import org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.Usmodel.hsfwork; ExceLoperate {public static void main (String [] args) {// Create Excel Table CreateExcel (getStudent ()); // Lire Excel Table List <Student> list = readExcel (); System.out.println (list.toString ()); } / ** * Initialiser les données * * @return Data * / Private Static List <Student> getStudent () {list <Student> list = new ArrayList <Student> (); Student Student1 = New Student ("Xiao Ming", 8, "deuxième année"); Student Student2 = New Student ("Xiao Guang", 9, "deuxième année"); Student Student3 = New Student ("Xiao Hua", 10, "quatrième année"); list.add (Student1); list.add (Student2); list.add (Student3); Liste de retour; } / ** * Créer Excel * * @Param List * Données * / Private Static void createExcel (List <Student> List) {// Créer un fichier Excel HSSFWorkBook Workbook = new HSSFWorkBook (); // Créer une feuille de calcul HSSFSheet Sheet = Workbook.CreateTheet ("Student Table One"); // Ajouter la ligne d'en-tête hssfrow hssfrow = sheet.createrow (0); // Définissez le format cellulaire sur le centre hssfcellStyle cellStyle = workbook.CreateCellStyle (); CellStyle.SetAlignment (hssfCellStyle.align_center); // Ajouter un contenu d'en-tête hssfCelll headcell = hssfrow.createCell (0); HeadCell.SetCellValue ("Name"); HeadCell.SetCellStyle (Cellstyle); headcell = hssfrow.createCell (1); HeadCell.SetCellValue ("âge"); HeadCell.SetCellStyle (Cellstyle); headcell = hssfrow.createCell (2); HeadCell.SetCellValue ("Grade"); HeadCell.SetCellStyle (Cellstyle); // Ajouter du contenu de données pour (int i = 0; i <list.size (); i ++) {hssfrow = sheet.createrow ((int) i + 1); Étudiant étudiant = list.get (i); // Créez une cellule et définissez la valeur HSSFCELL Cell = HSSFrow.CreateCell (0); Cell.SetCellValue (Student.GetName ()); Cell.SetcellStyle (CellStyle); Cell = hssfrow.CreateCell (1); Cell.SetCellValue (Student.getAge ()); Cell.SetcellStyle (CellStyle); Cell = HSSFrow.CreateCell (2); Cell.SetCellValue (Student.getGrade ()); Cell.SetcellStyle (CellStyle); } // Enregistrer Excel File try {outputStream outputStream = new FileOutputStream ("d: /Students.xls"); Workbook.Write (OutputStream); outputStream.close (); } catch (exception e) {e.printStackTrace (); }} / ** * Lire Excel * * @return Data Collection * / Private Static List <Student> readExcel () {List <Student> list = new ArrayList <Student> (); HSSFWorkBook Workbook = null; essayez {// read excel file inputStream inputStream = new FileInputStream ("d: /stuents.xls"); Workbook = new HSSFWorkBook (InputStream); inputStream.close (); } catch (exception e) {e.printStackTrace (); } // Loop Worksheet for (int numsheet = 0; numsheet <workbook.getNumberOfSheets (); numSheet ++) {hssfsheet hssfsheet = workbook.getSheetAt (numSheet); if (hssfSheet == null) {continuant; } // ligne de boucle pour (int rownum = 1; rownum <= hssfsheet.getSastrowmUm (); rownum ++) {hssfrow hssfrow = hssfsheet.getRow (rownum); if (hssfrow == null) {continue; } // Enregistrer le contenu dans la cellule dans la collection étudiante Student = New Student (); HSSFCELL CELLE = HSSFROW.GETCELL (0); if (cell == null) {continuer; } Student.SetName (Cell.getStringCellValue ()); Cell = hssfrow.getCell (1); if (cell == null) {continuer; } Student.Setage ((int) Cell.GetNumericCellValue ()); Cell = hssfrow.getCell (2); if (cell == null) {continuer; } Student.SetGrade (Cell.getStringCellValue ()); list.add (étudiant); }} Retour List; }}Joindre le code de la classe étudiante
classe publique Student {nom de chaîne privée; Âge privé; grade de chaîne privée; Student public () {} public Student (nom de chaîne, Int Age, String Grade) {Super (); this.name = name; this.age = âge; this.grade = grade; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public int getage () {return âge; } public void Setage (int Age) {this.age = age; } public String getgrade () {return grade; } public void setgrade (string grade) {this.grade = grade; } @Override public String toString () {return "Student [name =" + name + ", age =" + age + ", grade =" + grade + "]"; }} Résultats des tests
Tables Excel exportées
Étudiants
Imprimez les données de lecture Excel
[Étudiant [nom = xiao ming, âge = 8, grade = deuxième année], élève [nom = xiao guang, âge = 9, grade = 3], élève [nom = xiao hua, âge = 10, grade = 4]]
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article sera d'une aide à votre étude ou à votre travail. Si vous avez des questions, vous pouvez laisser un message pour communiquer.