Dua hari ini, saya membantu guru membuat database dan mengimpor semua data transaksi eksperimental ke dalam database. Tapi saya tidak ingin tinggal di laboratorium setiap hari. Suasana terlalu menyedihkan, jadi saya berpikir untuk membaca data menjadi Excel terlebih dahulu dan membawanya ke laboratorium untuk mengimpornya.
Data ternyata seperti ini. Eksperimen yang berbeda memiliki folder khusus. Ada folder untuk kelas yang berbeda di bawah folder nama percobaan. Folder tanggal kelas disimpan dalam data Excel untuk percobaan di waktu yang berbeda. Excel asli tidak memiliki kelas dan waktu. Sekarang Anda perlu menambahkan informasi ini sebagai kolom dengan membaca nama Excel dan nama kelas.
Di bawah ini adalah kode sumber, hehe, dan jendela visualisasi juga dibuat.
Kelas Excelread:
impor java.awt.list; import java.io.bytearrayoutputStream; impor java.io.file; impor java.io.fileInputStream; impor java.io.fileOutputStream; impor java.io.ticception; impor java.io.outputstream; impor java.oxception; impor java; java.text.simpledateFormat; import java.util.arraylist; impor org.apache.poi.hssf.usermodel.hssfcell; impor org.apache.poi.hssf.usermodel.hssfdateutil; impor org.apache.pood.poyhel.hsermdateutil; impor org.apache.apache.poyhshel.hsermel.hservel org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.xssfsheet; impor org.apache.poi.xssf.usermodel.xssfworkbook; kelas publik excelread {string path; public getPath () {return path;} public void setpath (string path) {this. Decimalformat ("0"); // Default Cell Formatting Date String Private Static SimpleDateFormat SDF = new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"); // format nomor format statis private nf = new decimalformat ("0,00"); Public Static ArrayList <ArrayList <Poles>> ReadExcel (File File) {if (file == null) {return null;} if (file.getName (). endswith ("xlsx")) {// ecxel2007 return readexcel2007 (file);} lainnya {// ecxel2007 return readexcel2007 (file);} lainnya {// Proses ecxel2007 READEXCEL27 (File);} lain {//Proses Ecxel2007 READEXCEL27 (file);} lain {//Proses Ecxel2007 READEXCEL27 (File);} Lain @return Store the return result in ArrayList, and the storage structure is similar to a two-digit array* lists.get(0).get(0) means 0 rows and 0 columns in Excel in the past */public static ArrayList<ArrayList<Object>> readExcel2003(File file){try{ArrayList<ArrayList<Object>> rowList = new ArrayList <ArrayList <Proteat> (); ArrayList <Peject> collist; hssfworkbook wb = hssfworkbook baru (FileInputStream baru (file)); hssfsheet sheet = wb.getsheetat (0); hssfrow row; hssfcell sel object; for (0); hssfrow row; hssfcell sel object; for (0); hssfrow row; hssfcell sel object; for (0); hssfrow row; hssfcell sel object; for (0); hssfrow row; hssfcell cell; for a object; for (0); hssprow sheet.getphysicalNumberOfrows (); i ++) {row = sheet.getrow (i); collist = new arraylist <papen> (); if (row == null) {// ketika perilaku yang dibaca apakah itu (i! = sheet.getphysicalNumberofrows ()) {// pertahankan apakah itu baris terakhir (lembar terakhir. else {rowcount ++;} untuk (int j = row.getFirstcellNum (); j <= row.getLastCellNum (); j ++) {cell = row.getCell (j); if (cell == null || cell.getCellTye () == hssfcell.cell_blan = cell.getCellTye () == hssfcell.cell_blan = cell.getCellype () == hssfcell.cell_blan = cell.getCellype () == hssfcell.cell_blan = cell) {) {) (jLEnD.kell_cell_blan = cell) {) {JLEK/JLANDEPLEY () row.getLastCellNum ()) {// Pertahankan apakah itu sel terakhir di baris collist.add ("");} lanjutkan;} switch (cell.getCellType ()) {case xssfcell.cell_type_string: //system.out.println "row" + j.cell " + J." + J. " + J." + J. " + J." + " + J +" + " + J +" + " + J +" + " + J +" + " + J +" + " + J +" + " +" + " + J +" + " +" + " + J +" + " +" + " +" value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric: if ("@". Equals (cell.getCellstyle (). getDataFormatString ()) {value = df.format (cell.getNumiccellValue ()); oMeDe ("get (cell. Getil format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (cell .getnumericCellValue ()); // + value.tostring ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "baris" + j + "Kolom adalah tipe boolean"); value = boolean.valueof (cell.getBooleanCellValue ()); break; case xssfcell.cell_type_blank: //system.out.println(i + "baris" + j + "Kolom adalah tipe kosong"); value = ""; break; default: //system.out.println(i + "baris" + j + "Kolom adalah tipe default"); value = cell.toString ();} // end switch collist.add (value);} // end switch untuk j rowlist.add (collist);} // end for i return rowlist;} catch (pengecualian e) {return null;}} public static arrayList <arraylist <object >> readexcel200 file) {coba {arraylist <arraylist <pesope>> rowlist = arraylist baru <arraylist <pes object> (); arraylist <pap object> collist; xssfworkbook wb = xssfworkbook baru; forcheets; xsfrow rowfrow rowsheet sheet = wb.getsheetat (0); (int i = sheet.getFirStrownum (), rowCount = 0; rowCount <sheet.getPhysicalNumberofrows (); i ++) {row = sheet.getrow (i); collist = new arraylist <pap object> (); if (row == null) {// ketika perilaku yang dibaca kosong jika saya! rowlist.add (collist);} lanjutkan;} else {rowcount ++;} untuk (int j = row.getFirstcellNum (); j <= row.getLastCellNum (); j ++) {cell = row.getCell (j); if (sel == null || cell.getCellType (row.getCell (j); if (cell == null || cell.getCellType (row.getCell (j); if (cell == null || cell.getCellType (row.getCell (j); if (cell == null || cell.getCellType (row. Hssfcell.cell_type_blank) {// Saat sel kosong jika (j! = Row.getLastCellNum ()) {// menilai apakah itu sel terakhir di baris collist.add (");} lanjutkan;} switch (cell.getCellType ()) {case xsfcell.cell.cell.celler: celly.getCellType ()) {case xssfcell.cell.cell.cell.cell.celling: Kolom "Row" + J + "adalah tipe string"); value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric: if ("@". Equals (cell.getCellstyle (). getDataFormatString ()) {value = df.format (cell.getNumiccellValue ()); oMe ife ("getnumiccellValue (); Getil format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (cell .getnumericCellValue ()); // + value.tostring ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "baris" + j + "Kolom adalah tipe boolean"); value = boolean.valueof (cell.getBooleanCellValue ()); break; case xssfcell.cell_type_blank: //system.out.println(i + "baris" + j + "Kolom adalah tipe kosong"); value = ""; break; default: //system.out.println(i + "baris" + j + "Kolom adalah tipe default"); value = cell.toString ();} // end switch collist.add (value);} // end for j rowlist.add (collist);} // end for i return rowlist;} // end for i return rowlist;} catch (exception e) {System.out.println ("pengecualian"); return null; filePath) {file root = file baru (filePath); file [] file = root.listFiles (); arraylist fileList = new arraylist (); untuk (file file: file) {if (file.isdirectory ()) {fileList.addall (getFiles (file.getAbsolutePath ()));} else {string newPath = file.getAbsolutePath (); if (newPath.contains ("transaction")) {filelistOpath (); if (newPath.contains ("transaction")) {filelist. ReadBook (String Path3) {String FilePath = Path3; ArrayList FileList = getFiles (FilePath); ArrayList <ArrayList> RAsphalls = ArrayList baru <RrArayList> (); untuk (int i = 0; i <fileList.Size (); i ++) {string string = (string) filelist.get (i); System.out.println (path); arraylist <arraylist> result = grafik (path); string [] path2 = path.split ("////"); int num = result.get (0) .size (); arraylist result2 = new arraylist (); untuk (int j = (); arraylist2 = new arraylist (); for (int j =); 0; j <num; j ++) {result2.add (path2 [path2.length-2]);} arraylist result3 = arraylist baru (); untuk (int j = 0; j <num; j ++) {hasil. Hasil;} else {for (int j = 0; j <result.size (); j ++) {for (int k = 0; k <result.get (j) .size (); k ++) {resultAll.get (j) .add (hasil. writeExcel (arraylist <Rr arrayList> hasil, string path) {if (result == null) {return;} hssfworkbook wb = new hssfworkbook (); hssfsheet sheet = wb.createSheet ("sheet1"); untuk (int i = 0; i <hasil. sheet.createrow (i); untuk (int j = 0; j <result.size (); j ++) {hssfcell cell = row.createCell ((pendek) j); cell.setCellValue (result.get (j) .get (i) .toString ());}} bytearrayoututputStream os = bytearring baru (); (IoException e) {E.PrintStackTrace ();} byte [] content = os.tobyteArray (); File file = file baru (path); // Lokasi penyimpanan setelah file Excel dihasilkan. OutputStream fos = null; coba {fos = new fileoutputStream (file); wb.write (fos); os.close (); fos.close ();} catch (pengecualian e) {e.printStackTrace ();} public static desimalformat getDf () {return);} public static desimalformat getDf () {return); {Excelread.df = df;} public static SimpledateFormat getSdf () {return sdf;} public static void setSDF (SimpleDateFormat sdf) {excelread.sdf = sdf;} public static decimalformat getnf () {return nf; {Excelread.nf = nf;} Public Static ArrayList <Sr arrayList> grafik (string path) {file file = file baru (path); arraylist <arraylist <pes object>> hasil = excelread.readexcel (file); arraylist <louble> harga = new arrayList <) <); ArrayList<String>();//Time series ArrayList<String>buyList = new ArrayList<String>();//Buyer sequence ArrayList<String>sellList = new ArrayList<String>();//Seller sequence ArrayList<double>vol = new ArrayList<double>();//Trading volume ArrayList<String>Share = new ArrayList<String>();//Stock Name ArrayList <String> id = ArrayList baru <string> (); ArrayList <String> shareD = ArrayList baru <String> (); untuk (int i = 2; i <result. (String) result.get (i) .get (j); shareD.add (temp);} if (j == 5) {// price.add ((string) result.get (i) .get (j)); string temp = (string) result.get (i) .get (j); string [] unit = temp. result.get (i) .get (j));} if (j == 2) {selllist.add ((string) result.get (i) .get (j));} if (j == 6) {vol.add (double.valueof ((string) result.get (i) .get (j)));} if (j == 4) {share.add ((string) result ArrayList <Sr arrayList> (); resultList.Add (shareId); resultList.add (id); resultList.add (buylist); resultList.add (selllist); resultList.add (saham); hasilnya.ReadExcelbook (untuk jendela visualisasi):
Impor java.awt.eventqueue; impor javax.swing.jfilechooser; impor javax.swing.jframe; import javax.swing.grouPlayout; import javax.swing.jlabel; import javax.swing.grouPlayout.alignment; impor javax.swing.swing java.awt.event.ActionListener; impor java.awt.event.actionevent; import java.io.file; kelas publik readexcelbook {bingkai jFrame pribadi; private jtextfield textfield;/*** Luncurkan aplikasi. */public static void main (string [] args) {eventqueue.invokelater (runnable baru () {public void run () {coba {readexcelbook window = readexcelbook (); window.frame.setVisible (true);} {Exception e) {e.printstack ();}} {exception e) {e.printstack (); */public readExcelBook () {initialize ();}/*** Inisialisasi konten bingkai. */private void initialize () {frame = new jframe (); frame.setbounds (100, 100, 450, 300); frame.setDefaultcloseOperation (jFrame.exit_on_close); jbutton (new jbutton ("/u9009/u62e9/u6587/u4) ("/u9009/u62e9/u6587/u67/u4 ("/u9009/u62e9/u6587/u67/u4 ("/u9009) {public void actionPerformed (actionEvent e) {jfilechooser jfc = new jfileChooser (); jfc.setFilesElectionMode (jfilechooser.files_and_directories); jfc.showdialog (new jlabel (), ""); file.getAbsolutePath (); textfield.setText (path); excelread er = new excelread (); er.readbook (path);}}); textfield = new jTextField (); TextField.setColumns (10); jlabel lbldaxls = baru = baru Jlabel ("/u5199/u5165/u4e86d/u76d8/u4e0b/u7684a.xls/u54c8"); grouPlayout grouPlayout = new grouPlayout (frame.getContentPane ()); grouplayout.sethororon (frame.getContentPane ()); groullayout.sethororon grouplayout.createParallelgroup (Alignment.leading) .addgroup (groUplayout.createSquentialGroup () .addgap (26) .AddGroup (GroUplayout.createParallelelelel (Alignment.Leading) .addComponent (lbldaxls) .addCompon) .Angnment.leading) .addComponent (lbldaxls) .addCompon Grourplayout.preferred_size) .addcomponent (tombol)) .addcontainergap (113, short.max_value))); grouplayout.setVerticalGroup (grouplayout.createParallelgroup (Alignment.eadgroup) .addgroup (grouPrePreate.creadpreup. .addgap (18) .addComponent (Textfield, GrouPlayout.preferred_size, grouPlayout.default_size, grouPlayout.preferred_size) .addgap (35) .addComponent (lbldaxls) .addcontainergap (119, short.max_vale) .addcontainergap (119, short.max_vale). ); frame.getContentPane (). setLayout (grouPlayout);}}Hasil Menjalankan:
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang Java Writing and Writing Excel Operation Source Code Sharing, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk pada topik terkait Java di situs web ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!