First, the implementation of Excel export process
Suppose you have a collection of objects, and now you need to export all of the objects in this collection to Excel, with n properties for the object, and that's how we do it:
Loop this collection, all the properties of an object in the Loop collection, all the properties of this object as columns of Excel, which occupy one line of Excel
Second, universal Excel Export (take JXL as an example, JXL, POI and other Excel import exported jar package does not introduce)
1. Create Java project, introduce JXL jar package
2, directly on the code
Book.java
/*** Book Object *@authorBwy **/ Public classBook {PrivateString name; Private DoublePrice ; PublicString GetName () {returnname; } Public voidsetName (String name) { This. Name =name; } Public DoubleGetPrice () {returnPrice ; } Public voidSetprice (DoublePrice ) { This. Price =Price ; } PublicBook (String name,DoublePrice ) { This. Name =name; This. Price =Price ; } }
Excel Tools Class Excelutil.java
1 /**2 * Excel Tool class3 * 4 * @authorBwy5 *6 */7 Public classExcelutil {8 9 /**Ten * Excel Export Method One * A * @paramList - * Exported collection of objects - * @paramFilePath the * Export Path - */ -@SuppressWarnings ("Rawtypes") - Public Static voidexportexcel (ArrayList list, String filePath) { + - //Create a Workbook object +Writableworkbook WorkBook =NULL; A at //Sheet Object -Writablesheet sheet =NULL; - Try { -WorkBook = Workbook.createworkbook (NewFile (FilePath)); -Sheet = Workbook.createsheet ("book", 0); - in //loops The collection of the object - for(inti = 0; I < list.size (); i++) { to + //Get Object -Object obj =List.get (i); the * //gets the class of the object $Class CLS =Obj.getclass ();Panax Notoginseng - //get all the properties of the class thefield[] FIS =cls.getdeclaredfields (); + A //Looping class Properties the for(intj = 0; J < Fis.length; J + +) { + - //setting private property access, this step is important $Fis[j].setaccessible (true); $ - //Create a label -Label label =NewLabel (J, I, Fis[j].get (obj). toString ()); the - //put into the sheet.Wuyi Sheet.addcell (label); the } - } Wu - //Write a file About workbook.write (); $}Catch(Exception e) { - e.printstacktrace (); -}finally { - A //Close the stream + Try { the workbook.close (); -}Catch(WriteException e) { $ e.printstacktrace (); the}Catch(IOException e) { the e.printstacktrace (); the } the } - } in}
Finally, the test class Excelexporttest.java
1 Public classExcelexporttest {2 Public Static voidMain (string[] args) {3Book B1 =NewBook ("The days when I lived with Sister Feng", 32.00);4Book B2 =NewBook ("HTML5 Development Manual", 18.00);5Book B3 =NewBook ("Thiking in Java", 90.0);6Book B4 =NewBook ("Data Structure", 22); 7Book B5 =NewBook ("Mao Zedong Thought", 10);8 9Arraylist<book> Booklist =NewArraylist<book>();Ten Booklist.add (B1); One Booklist.add (B2); A Booklist.add (b3); - Booklist.add (b4); - Booklist.add (B5); the -Excelutil.exportexcel (Booklist, "C:/export.xls"); - } -}
Run the test class and you can see that the Export.xls file was generated in the C packing directory
Of course, this export function is not the most complete, but only through this function to understand the use of Java reflection.
Two universal Excel export of Java Reflection Learning