สองวันนี้ฉันช่วยครูสร้างฐานข้อมูลและนำเข้าข้อมูลทั้งหมดของธุรกรรมการทดลองลงในฐานข้อมูล แต่ฉันไม่ต้องการอยู่ในห้องปฏิบัติการทุกวัน บรรยากาศน่าหดหู่เกินไปดังนั้นฉันจึงคิดเกี่ยวกับการอ่านข้อมูลเป็น Excel ก่อนและนำไปที่ห้องปฏิบัติการเพื่อนำเข้า
ข้อมูลกลายเป็นเช่นนี้ การทดลองที่แตกต่างกันมีโฟลเดอร์พิเศษ มีโฟลเดอร์สำหรับคลาสที่แตกต่างกันภายใต้โฟลเดอร์ของชื่อการทดสอบ โฟลเดอร์วันที่คลาสจะถูกเก็บไว้ในข้อมูล Excel สำหรับการทดลองในเวลาที่ต่างกัน Excel ดั้งเดิมไม่มีชั้นเรียนและเวลา ตอนนี้คุณต้องเพิ่มข้อมูลนี้เป็นคอลัมน์โดยอ่านชื่อ Excel และชื่อคลาส
ด้านล่างนี้เป็นซอร์สโค้ดฮิฮิและหน้าต่างการสร้างภาพก็ถูกสร้างขึ้น
คลาส Excelread:
นำเข้า java.awt.list; นำเข้า Java.io.ByTeArrayOutputStream; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.fileOutputStream; นำเข้า Java.io.ioException; java.util.arraylist; นำเข้า org.apache.poi.hssf.usermodel.hssfcell; นำเข้า org.apache.poi.hssf.usermodel.hssfdateutil; นำเข้า org.apache.poi.hsf.usermodel.hsfrow; org.apache.poi.hssf.usermodel.hssfsheet; นำเข้า org.apache.poi.hssf.usermodel.hssfworkbook; นำเข้า org.apache.poi.xssf.usermodel.xssfcell; org.apache.poi.xssf.usermodel.xssfsheet; นำเข้า org.apache.poi.xssf.usermodel.xssfworkbook; คลาสสาธารณะ excelread {เส้นทางสตริงสาธารณะ DecimalFormat ("0"); // การจัดรูปแบบเซลล์เริ่มต้นวันที่สตริงส่วนตัวคงที่ simpledateFormat SDF = ใหม่ SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); // รูปแบบหมายเลขส่วนตัวคงที่ arraylist สาธารณะคงที่ <arraylist <object>> readExcel (ไฟล์ไฟล์) {ถ้า (file == null) {return null;} ถ้า (file.getName (). endswith ("xlsx") {// process ecxel2007 returnexcel2007 (ไฟล์); @return เก็บผลการส่งคืนใน ArrayList และโครงสร้างการจัดเก็บจะคล้ายกับอาร์เรย์สองหลัก * lists.get (0) .get (0) หมายถึง 0 แถวและ 0 คอลัมน์ใน Excel ในอดีต */ArrayList แบบคงที่ <ArrayList <Object >> readExcel2003 (ไฟล์ไฟล์) arraylist <arraylist <object>> (); arraylist <Object> collist; hssfworkbook wb = hssfworkbook ใหม่ (ใหม่ fileInputStream (ไฟล์)); hssfsheet ชีท = wb.getSheetat (0); hssfrow row; <sheet.getphysicalnumberofrows (); else {rowcount ++;} สำหรับ (int j = row.getfirstcellnum (); j <= row.getLastcellnum (); j ++) {cell = row.getCell (j); ถ้า (เซลล์ == null || cell.getCelltype () == row.getLastcellnum ()) {// ปกป้องไม่ว่าจะเป็นเซลล์สุดท้ายใน Row Collist.add (");} ดำเนินการต่อ;} switch (cell.getCellType ()) {case xssfcell.cell_type_string: //system.out.out.println(i value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric: ถ้า ("@". เท่ากับ (cell.getcellstyle (). getDataFormatstring ()) {value = df.format .getDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (cell .getNumericCellValue ()); // + value.toString ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "แถว" + j + "คอลัมน์เป็นประเภทบูลีน"); value = boolean.valueof (cell.getBooleanCellValue ()); break; case xssfcell.cell_type_blank: //system.out.println(i + "แถว" + j + "คอลัมน์ว่างเปล่า"); value = ""; break; ค่าเริ่มต้น: //system.out.println(i + "แถว" + j + "คอลัมน์เป็นประเภทเริ่มต้น"); value = cell.toString ();} // end switch collist.add (value);} // end switch สำหรับ j rowlist.add (collist);} // สิ้นสุดสำหรับฉันกลับรายการ rowlist;} catch (exception e) {return null;}} rowlist = new ArrayList <arraylist <object>> (); arrayList <Ojrop> Collist; XSSFWORKBOOK WB = New XSSFWORKBOOK (FileInputStream ใหม่ (ไฟล์)); XSSFSHEET SHEET = WB.GETSHEETAT (0); XSSFROW ROW; 0; rowcount <sheet.getphysicalnumberofrows (); rowlist.add (collist);} ดำเนินการต่อ;} else {rowcount ++;} สำหรับ (int j = row.getfirstcellnum (); j <= row.getLastcellnum (); j ++) {cell = row.getCell (j); ถ้า (เซลล์ == null | hssfcell.cell_type_blank) {// เมื่อเซลล์ว่างเปล่าถ้า (j! = row.getLastcellnum ()) {// ตัดสินว่าเป็นเซลล์สุดท้ายในแถว collist.add (""); //system.out.println(i + "แถว" + j + "คอลัมน์เป็นประเภทสตริง"); value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric: ถ้า ("@". เท่ากับ (cell.getcellstyle (). getDataFormatstring ()) {value = df.format .getDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (cell .getNumericCellValue ()); // + value.toString ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "แถว" + j + "คอลัมน์เป็นประเภทบูลีน"); value = boolean.valueof (cell.getBooleanCellValue ()); break; case xssfcell.cell_type_blank: //system.out.println(i + "แถว" + j + "คอลัมน์ว่างเปล่า"); value = ""; break; ค่าเริ่มต้น: //system.out.println(i + "แถว" + j + "คอลัมน์เป็นประเภทเริ่มต้น"); value = cell.toString ();} // end switch collist.add (value);} // end สำหรับ j rowlist.add (collist);} // end สำหรับฉันส่งคืน rowlist;} // end สำหรับฉัน returt; root = ไฟล์ใหม่ (filePath); ไฟล์ [] files = root.listfiles (); arrayList fileList = new ArrayList (); สำหรับ (ไฟล์ไฟล์: ไฟล์) {if (file.isdirectory ()) {fileList.addall (getFiles (file.getAbsolutePath ()));} else {String newpath = file.getAbsolutePath () {reading {newPath.contains ( path3) {String filePath = path3; arrayList fileList = getFiles (filePath); arrayList <RarrayList> resultAll = new ArrayList <arrayList> (); สำหรับ (int i = 0; i <filelist.size (); i ++) filelist.get (i); system.out.println (path); arraylist <arraylist> result = graph (path); string [] path2 = path.split ("////"); int num = result.get (0) .size (); 0; j <num; j ++) {result2.add (path2 [path2.length-2]);} arraylist result3 = new ArrayList (); สำหรับ (int j = 0; j <num; j ++) {result3.add (path2 [path2.length-3]);} result.add (result2); result.add (ผลลัพธ์ 3); ถ้า (resultall.size () == 0) {resultall = ผลลัพธ์;}} {สำหรับ (int j = 0; 0; k <result.get (j) .size (); k ++) {resultall.get (j) .add (result.get (j) .get (k));}}}} writeExcel (resultall, "d: /a.xls"); null) {return;} hssfworkbook wb = new hssfworkbook (); hssfsheet sheet = wb.createsheet ("sheet1"); สำหรับ (int i = 0; i <result.get (0) .size (); i ++) สำหรับ (int j = 0; j <result.size (); j ++) {hssfcell cell = row.createCell ((สั้น) j); cell.setCellValue (result.get (j) .get (i) .toString (); e) {E.printStackTrace ();} byte [] content = os.tobyteArray (); ไฟล์ไฟล์ = ไฟล์ใหม่ (พา ธ ); // ตำแหน่งของการจัดเก็บหลังจากสร้างไฟล์ excel OutputStream fos = null; ลอง {fos = ใหม่ fileOutputStream (ไฟล์); wb.write (fos); os.close (); fos.close ();} catch (Exception e) {e.printstacktrace (); {excelread.df = df;} สาธารณะคงที่ simpledateFormat getSdf () {return sdf;} โมฆะคงที่สาธารณะ setsdf (simpledateFormat sdf) {excelread.sdf = sdf;} สาธารณะคงที่ nf;} arrayList สาธารณะคงที่ <RarrayList> กราฟ (เส้นทางสตริง) {ไฟล์ไฟล์ = ไฟล์ใหม่ (พา ธ ); arrayList <arrayList <อ็อบเจ็กต์ >> result = excelread.readexcel (ไฟล์); arrayList <String> buyList = new ArrayList <String> (); // ลำดับผู้ซื้อ ArrayList <String> sellList = new ArrayList <String> (); // ลำดับผู้ขาย arrayList <bouble> vol = new ArrayList <bouble> (); ArrayList <String> (); ArrayList <String> ShareId = new ArrayList <String> (); สำหรับ (int i = 2; i <result.size (); i ++) {สำหรับ (int j = 0; j <result.get (i) .size (); j ++) {// คอลัมน์ 5 แสดงราคาและคอลัมน์ 8 แสดงถึงเวลาถ้า (j == 0) {string temp = (string) (สตริง) result.get (i) .get (j); shareId.add (temp);} ถ้า (j == 5) {// price.add ((สตริง) result.get (i) .get (j)); สตริงอุณหภูมิ = (สตริง) ผลลัพธ์ temp.split ("¥"); price.add (double.valueof (หน่วย [1]));} ถ้า (j == 7) {สตริงอุณหภูมิ = (สตริง) ผลลัพธ์ (i) .get (j); time.add (temp); // time.add (string) result.get (i) .get (j));} ถ้า (j == 2) {selllist.add ((สตริง) result.get (i) .get (j));} ถ้า (j == 6) {vol.add (double.valueof ((สตริง) result.get (i) .get (j)));} ถ้า (j == 4) {share.add (String) result.get.get (i) .get (j)); arraylist <arraylist> (); resultlist.add (shareid); resultlist.add (id); resultlist.add (buylist); resultlist.add (selllist); resultlist.add (share); resultlist.add (ราคา);ReadExcelbook (สำหรับหน้าต่างการสร้างภาพข้อมูล):
นำเข้า java.awt.eventqueue; นำเข้า Javax.swing.jfilechooser; นำเข้า Javax.swing.jframe; นำเข้า Javax.swing.grouplayout; นำเข้า Javax.swing.jlabel; java.awt.event.actionListener; นำเข้า java.awt.event.actionEvent; นำเข้า java.io.file; คลาสสาธารณะ readExcelbook {เฟรมส่วนตัว jframe; ส่วนตัว JTextfield private field;/*** เปิดแอปพลิเคชัน */public static void main (string [] args) {eventqueue.invokelater (ใหม่ runnable () {public void run () {ลอง {readexcelbook window = ใหม่ readExcelbook (); window.frame.setVisible (จริง); */Public ReadExcelbook () {Initialize ();}/*** เริ่มต้นเนื้อหาของเฟรม */โมฆะส่วนตัวเริ่มต้น () {frame = new JFrame (); frame.setBounds (100, 100, 450, 300); frame.setDefaultCloseoperation (jFrame.Exit_on_close); ปุ่ม JButton = new JButton ("/u9009/u62e9/u6587/u4 {โมฆะสาธารณะ ActionPerformed (ActionEvent E) {jfilechooser jfc = ใหม่ jfilechooser (); jfc.setFilesElectionMode (jfilechooser.files_and_directories); jfc.showdialog file.getabsolutepath (); textfield.settext (พา ธ ); excelread er = new excelread (); er.readbook (พา ธ );}}); textfield = new JTextfield (); textfield.setColumns (10); jlabel lbldaxls = ใหม่ Jlabel ("/U5199/U5165/U4E86D/U76D8/U4E0B/U7684A.XLS/U54C8"); grouplayout grouplayout = new Grouplayout (frame.getContentpane (); Grouplayout.CreateParallelGroup (การจัดตำแหน่ง. leading) .AddGroup (Grouplayout.createsequentialgroup () .addgap (26) .AddGroup (Grouplayout.CreateLallelGroup (การจัดตำแหน่ง. 295, grouplayout.preferred_size) .AddComponent (ปุ่ม)) .AddContainergap (113, short.max_value))); grouplayout.setverticalgroup (Grouplayout.createpreateparallegroup .AddComponent (ปุ่ม) .addGap (18) .AddComponent (textfield, grouplayout.preferred_size, grouplayout.default_size, grouplayout.preferred_size) .addgap (35) ); frame.getContentPane (). setLayout (grouplayout);}}ผลการทำงาน:
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการเขียน Java และการเขียนการแบ่งปันซอร์สโค้ดการดำเนินงาน Excel ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้อที่เกี่ยวข้องกับ Java ในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!