In diesen zwei Tagen half ich dem Lehrer, eine Datenbank zu erstellen und alle Daten der experimentellen Transaktionen in die Datenbank zu importieren. Aber ich wollte nicht jeden Tag im Labor bleiben. Die Atmosphäre war zu deprimierend, daher dachte ich darüber nach, die Daten zuerst in Excel zu lesen und sie ins Labor zu bringen, um sie zu importieren.
Die Daten stellten sich als so heraus. Verschiedene Experimente haben einen speziellen Ordner. Es gibt Ordner für verschiedene Klassen unter dem Ordner des Experimentnamens. Der Klassendatumordner wird in den Excel -Daten für die Experimente in unterschiedlichen Zeiten gespeichert. Der ursprüngliche Excel hatte keine Klasse und Zeit. Jetzt müssen Sie diese Informationen als Spalte hinzufügen, indem Sie den Excel -Namen und den Klassennamen lesen.
Unten ist der Quellcode, hehe, und es wurde auch ein Visualisierungsfenster vorgenommen.
Klasse ExcelRead:
Import Java.awt.List; Import Java.io.BytearrayoutputStream; Import Java.io.file; Import Java.io.FileInputStream; Import Java.io.FileOutputStream; Import Java.io.io.ioxception; ImportputStream import. java.text.SimpledateFormat; import Java.util.ArrayList; import org.apache.poi.hssf.usmodel.hssfcell; org.apache.poi.hssf.usermodel.hssfsheet; import org.apache.poi.hssf.usmodel.hssfworkbook; org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExcelRead {String path;public String getPath() {return path;}public void setPath(String path) {this.path = path;}//Format private static DecimalFormat df = new DecimalFormat ("0"); // Standard-Zellformatierungsdatum Zeichenfolge private statische SimpleDateFormat sdf = new SimpledateFormat ("Yyyy-Mm-dd HH: mm: ss"); // Formatnummer private statische Dezimalformat nf = new DecimalFormat ("0.00"); public static ArrayList<ArrayList<Object>> readExcel(File file){if(file == null){return null;}if(file.getName().endsWith("xlsx")){//process ecxel2007 return readExcel2007(file);} else{//process ecxel2003 return readExcel2003(file);}}/* * @Return speichern das Rückgabergebnis in ArrayList, und die Speicherstruktur ähnelt einem zweistelligen Array * lists.get (0) .get (0) bedeutet 0 Zeilen und 0 Spalten in Excel in der Vergangenheit */public static ArrayList <arrayList <Object >> readExcel2003 (Datei Datei) {try {archraylist <archraylist <object >> RowList = new ArrayList <arrayList <Objekt >> (); ArrayList <Object> kollekt; Sheet.GetPhysicalNumberofrows (); sonst {rowCount ++;} für (int j = row.getFirstcellnum (); j <= row.getLastcellnum (); j ++) {cell = row.getCell (j); if (cell == null || cell.getCellType () == HSSFCELL.CELL.CELL.CELL.CELL.CELL. row.getLastcellnum ()) {// verteidigen Sie, ob es sich um die letzte Zelle in der Zeilenkollektion handelt. value = cell.getStringCellValue();break;case XSSFCell.CELL_TYPE_NUMERIC: if ("@".equals(cell.getCellStyle().getDataFormatString())) {value = df.format(cell.getNumericCellValue());} else if ("General".equals(cell.getCellStyle()) .GetDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdatutil.getJavadate (cell .getnumericcellValue); // + value.toString ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "row" + j + "Spalte ist boolescher Typ"); value = boolean.Valueof (cell.getBooleancellValue ()); break; case xssfcell.cell_type_blank value = ""; break; default: //system.out.println(i + "row" + j + "Spalte ist Standardtyp"); value = cell.toString();}// end switch colList.add(value);}// end switch for j rowList.add(colList);}//end for i return rowList;}catch(Exception e){return null;}}public static ArrayList<ArrayList<Object>> readExcel2007(File file){try{ArrayList<ArrayList<Object>> rowList = new ArrayList <arrayList <objekt >> (); ArrayList <Object> kollekt; xssfworkbook wb = new XSSFWorkbook (neuer FileInputStream (Datei); xssfSheet Sheet = wb.getSheetat (0); xssfrows row; xssfcell; Sheet.GetPhysicalNumberofrows (); sonst {rowCount ++;} für (int j = row.getFirstcellnum (); j <= row.getLastcellnum (); j ++) {cell = row.getCell (j); if (cell == null || cell.getCellType () == HSSFCELL.CELL.CELL.CELL.CELL.CELL. row.getLastcellnum ()) {// beurteilen Sie, ob es sich um die letzte Zelle in der Zeilenkollektion.Add ("");} fortsetzen;} Switch (cell.getCellType ()) {case xssfcell.cell_type_string: //system.out.println(i + "Row" + J + J + J + J + " value = cell.getStringCellValue();break;case XSSFCell.CELL_TYPE_NUMERIC: if ("@".equals(cell.getCellStyle().getDataFormatString())) {value = df.format(cell.getNumericCellValue());} else if ("General".equals(cell.getCellStyle() .GetDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdatutil.getJavadate (cell .getnumericcellValue); // + value.toString ()); break; case xssfcell.cell_type_boolean: //system.out.println(i + "row" + j + "Spalte ist boolescher Typ"); value = boolean.Valueof (cell.getBooleancellValue ()); break; case xssfcell.cell_type_blank value = ""; break; default: //system.out.println(i + "row" + j + "Spalte ist Standardtyp"); value = cell.toString ();} // End -Switch -Kollektion.Add (value);} // End für j rowList.add (kollekt);} // End für i return rowList;} // End für i return rowList;} catch (Exception E) {System.out.println ("Ausnahme"; Datei (filepath); Datei [] file = root.listfiles (); ArrayList filelist = new ArrayList (); für (Dateidatei: Dateien) {if (file.isdirectory ()) {filelist.addall (getFiles (Datei.getabsolutepath ());} else {String newpat = file.getabsolutepath (); if (newpath.contains ("transaction") {Filelist.add (newpath); path3) {String filepath = path3; ArrayList filelist = getFiles (filepath); ArrayList <RarrayList> resultall = new ArrayList <RrayList> (); for (int i = 0; i <filelist.size (); i ++) {String path = (String) filray.Get (i); Graph (path); string [] path2 = path.split ("////"); int num = result.get (0) .size (); ArrayList result2 = new ArrayList (); für (int j = 0; j <num; j ++) {result2.add (path2]; 0; j <num; j ++) {result3.add (path2 [path2.Length-3]);} result.add (result2); result.add (result3); if (resultall.size () == 0) {resultall = result;} else {for (int j = 0; j <Ergebnis (); 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"); for (int i = 0; i <result.get (0) .SIZE (); i ++) {HSSfrow Row = Blatt.Creater (i); für (int j = 0; j <result.size (); j ++) {hssfcell cell = row.createcell ((kurz) j); e) {e.printstacktrace ();} byte [] content = os.tobytearray (); Datei = new Datei (Pfad); // Der Speicherort des Speichers nach der Generierung von Excel -Datei wird generiert. OutputStream fos = null; try {fos = new FileOutputStream (Datei); {ExcelRead.df = df;}public static SimpleDateFormat getSdf() {return sdf;}public static void setSdf(SimpleDateFormat sdf) {ExcelRead.sdf = sdf;}public static DecimalFormat getNf() {return nf;}public static void setNf(DecimalFormat nf) {ExcelRead.nf = nf;}public static ArrayList<ArrayList> Graph(String path){File file = new File(path);ArrayList<ArrayList<Object>> result = ExcelRead.readExcel(file);ArrayList<double>price = new ArrayList<double>();//Price sequence ArrayList<String>time = new ArrayList<String>();//Time series ArrayList <string> buylist = new ArrayList <string> (); // Buyer Sequence ArrayList <string> Selllist = new ArrayList <string> (); // Verkäufer Sequence ArrayList <Double> vol = new ArrayList <Double> (); // Handelsvolumen -Arraylist <string> Share = new ArrayList <Strylist <string> (); ArrayList <string> (); ArrayList <string> ShareId = new ArrayList <string> (); für (int i = 2; i <result.size (); i ++) {für (int j = 0; j <result.get (i) .size (); j ++) {// Spalte 5 repräsentiert den Preis, und Spalte 8 repräsentiert die Zeit if (j == 0) {String temp = (String) Ergebnis. (String) result.get (i) .get (j); ShareId.Add (temp);} if (j == 5) {// price.add ((String) result.get (i) .get (j)); String temp = (String) result.get (i) .get (j); String [] Units = Units = temp.Split ("¥"); price.add (double.ValueOf (Einheiten [1]);} if (j == 7) {String temp = (String) result.get (i) .get (j); 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.get (i) .get (j)); ArrayList <ArrayList> (); resultlist.add (ShareId); resultlist.add (id); resultlist.add (buylist); resultlist.add (Selllist); resultlist.add (share); resultlist.add (preis); resultlist.add (vol); resultlist.add (time); resultlist;}}}}}}}}}}}}}}}}}}}ReadExcelbook (für Visualisierungsfenster):
import Java.awt.eventqueue; import Javax.swing.jfilechooser; Import Javax.swing.jframe; Import Javax.swing.grouplayout; java.awt.event.actionListener; import Java.awt.event.ActionEvent; Import java.io.file; öffentliche Klasse ReadExcelbook {privat JFrame Frame; private jtextfield textfield;/*** Starten Sie die Anwendung. */public static void main (String [] args) {eventQueue.invokelater (new Runnable () {public void run () {try {ReadExcelbook Window = new ReadExcelBook (); Fenster.frame.setvisible (true); */public ReadExcelbook () {initialize ();}/*** Initialisieren Sie den Inhalt des Rahmens. */private void initialize () {Frame = new JFrame (); Frame.SetBounds (100, 100, 450, 300); Frame.SetDefaultCloseoperation (jframe.exit_on_close); {public void actionperformed (actionEvent e) {JFilechooser jfc = new JFilechoOser (); jfc.setFileSectionMode (jFilechooser.files_and_Directories); jfc.showdialog (new jlabel (), "select"); file.getabsolutepath (); textField.setText (path); excelRead er = new excelread (); er.readbook (path);}}); textfield = new jtextfield (); textField.setColumns (10); JLabel ("/u5199/u5165/u4e86d/u76d8/u4e0b/u7684a.xls/u54c8"); crouPlayout crouPlayout = new croUPlayout (Fram.GetContentPane ()); GrouPlayout.Sthethorizing ( crouPlayout.CreateParallelGroup (Alignment.Leading) .AddGroup (crouPlayout.CreateSequentalgroup () .Addgap (26) .Addgroup (crouplayout.CreateParallelGroup (Alignment.leading) .Addcomponent (lbldaxls) .addcomponent (textield. 295, croUPlayout.Preferred_size) .AddComponent (Button)) .AddContainergap (113, Short.max_Value)); GroupeTout.SetverticalGroup (GrouPlayout. .Addcomponent (button) .addgap (18) .AddComponent (textfield, croUPLEUT.PREFERRED_SIZE, GrouPlayout.Default_Size, crouplayout.Preferred_size) .Addgap (35) .AddcomPonent (lbldaxus) .AddContaingapap (119, Short. max.val).).).).). );Auslaufergebnisse:
Zusammenfassen
Das obige ist der Inhalt dieses Artikels über Java -Schreiben und Schreiben von Excel Operation Source Code Sharing. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf die Java-bezogenen Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!