この2日間、私は教師がデータベースを作成し、実験トランザクションのすべてのデータをデータベースにインポートするのを助けました。しかし、私は毎日研究室に滞在したくありませんでした。雰囲気はあまりにも憂鬱だったので、最初にデータをExcelに読んで、それを実験室に持ち込んで輸入することを考えました。
データはこのようなものであることが判明しました。実験によって特別なフォルダーがあります。実験名のフォルダーの下には、さまざまなクラスのフォルダーがあります。クラスの日付フォルダーは、実験のためにExcelデータにさまざまな時期に保存されます。元のExcelにはクラスと時間がありませんでした。これで、Excel名とクラス名を読んで、この情報を列として追加する必要があります。
以下はソースコード、hehe、そして視覚化ウィンドウも作成されました。
クラスExcelread:
java.awt.list; Import java.io.io.bytearrayoutputStream; Import java.io.file; Import java.io.fileinputStream; Import java.io.fileoutputStream; Import java.io.ioexception; Import Java.io.OutputStream; Import java.text.decimalict; java.text.SimpleDateFormat;import java.util.ArrayList;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFDateUtil;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.hssfsheet; Import org.apache.poi.hssf.usermodel.hssfworkbook; Import org.apache.poi.xssf.usermodel.xssfcell; Import org.apache.poi.xsf.sf.sf.sf. org.apache.poi.xssf.usermodel.xsfsheet; Import org.apache.poi.xsf.usermodel.xssfworkbook; public class excelread {string path; public string getpath(){return path;} public void setpath(string path){this path = path Decimalformat( "0"); //デフォルトセルフォーマット日付string private static simpledateformat sdf = new simpledateformat( "yyyy-mm-dd hh:mm:ss"); // format number private static decimalformat 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 returee readexcel2007(file);} ecxel2003を返すecxel2003を返すecxel2003 @returnストアのリターン結果はアレイリストにあり、ストレージ構造は2桁のアレイ * lists.get(0).get(0)は過去のExcelのexcelの列と0列に似ています */public static arraylist <arraylist <object >> readexcel2003(file file){try {arraylist <arraylist <arraylist <arraylist <arraylist = rowlist = rowlist = rownist = arrayList <arrayList <object >>(); arrayList <object> collist; hssfworkbook wb = new hinputStream(file)); hssfsheetシート= wb.getsheetat(0); hssfrow row; hssfcell cell; sheet.getPhysicalNumberOfRows(); row = sheet.getrow(i); collist = new arraylist <object>(); if(row == null){// else {rowcount ++;} for(int j = row.getFirstCellnum(); j <= row.getLastCellnum(); j ++){cell = row.getCell(j); if(cell = null || cell.getCelltype()== hssfcell.cell_ty_te_blank) row.getLastCellnum()){//それがrow collist.add( "");} collist;} switch(cell.getCelltype()){case xssfcell.cell_type_string://system.out.out.out.println(i + "low" + j + "columm" collis is type "); value = cell.getStringCellValue(); break; case xssfcell.cell_type_numeric:if( "@"。equals(cell.getCellStyle()。getDataFormattring()){value = df.format(cell.getnumericcellvalue()); .getDataFormattring())){value = nf.format(cell.getNumericCellValue());} else {value = sdf.format(hssfdateutil.getjavadate(cell .getnumericcellvalue());} // System.out.out.out.out.out.out.out.out.out.out. value.toString()); break; case xssfcell.cell_type_boolean://system.out.println(i + "row" + j + "列はブールタイプ"); value = boolean.valueof(cell.getbooleancellvalue()); break; case xssfcell.cell_type_blank://system.out.println(i + "row" + j + "列は空白型"); value = ""; break; default://system.out.println(i + "row" + j + "列はデフォルトタイプ"); value = cell.toString();} // end switch collist.add(value);} // j rowlist.add(collist);} for i return rowlist;} catch(return e){return e){return null;}} public static arraylist <arraylist <readexcel2007(arraylist <arraylist <arraylist> rowlist = new arrayList <arrayList <object >>(); arrayList <object> collist; xssfworkbook wb = new xssfworkbook(new fileinputStream(file)); xssfsheetシート= wb.getSheetat(0); rowcount <sheet.getphysicalNumberOfRows(); row = sheet.getrow(i); collist = new arrayList <Object>(); if(row == null){// else {rowcount ++;} for(int j = row.getFirstCellnum(); j <= row.getLastCellnum(); j ++){cell = row.getCell(j); if(cell = null || cell.getCelltype()== hssfcell.cell_ty_te_blank) row.getLastCellnum()){//それが行の最後のセルであるかどうかを判断するcollist.add( "");} switch(} switch(cell.getCelltype()){case xssfcell.cell_type_string://system.out.out.out.println(i + "low" + j + "colli is type"); value = cell.getStringCellValue(); break; case xssfcell.cell_type_numeric:if( "@"。equals(cell.getCellStyle()。getDataFormattring()){value = df.format(cell.getnumericcellvalue()); .getDataFormattring())){value = nf.format(cell.getNumericCellValue());} else {value = sdf.format(hssfdateutil.getjavadate(cell .getnumericcellvalue());} // System.out.out.out.out.out.out.out.out.out.out. value.toString()); break; case xssfcell.cell_type_boolean://system.out.println(i + "row" + j + "列はブールタイプ"); value = boolean.valueof(cell.getbooleancellvalue()); break; case xssfcell.cell_type_blank://system.out.println(i + "row" + j + "列は空白型"); value = ""; break; default://system.out.println(i + "row" + j + "列はデフォルトタイプ"); 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.out.println( "excement"); return null;} root = new file(filepath); file [] files = root.listfiles(); arraylist filelist = new ArrayList(); for(file file:files){if(file.isdirectory()){filelist.addall(getFiles(file.getabsolutepath());} path3){string filepath = path3; arraylist filelist = getFiles(filepath); arrayList <ArrayList> resultall = new ArrayList <ArrayList>(); filelist.get(i); system.out.println(path); arraylist <ArrayList> result = graph(path); string [] path2 = path.split( "////"); int num = result.get(0).size(); arraylist result2 = new arraylist(); 0; j <num; j ++){result2.add(path2 [path2.length-2]);} arrayList result3 = new ArrayList(); for(int j = 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 <result){int k = k = k = for 0; k <result.get(j).size(); k ++){resultall.get(j).add(result.get(j).get(k));}}}} writeexcel( "d:/a.xls");} public static void writeexcel(resurlist <arraylist> result> = = = = = null){return;} hssfworkbook wb = new hssfworkbook(); hssfsheetシート= wb.createsheet( "sheet1"); for(int j = 0; j <result.size(); j ++){hssfcell cell = row.createcell((short)j); cell.setcellvalue(result.get(j).tostring();}} bytearrayoutputStream os = bytearrayootstream = new bytearutputstream(os); e){e.printstacktrace();} byte [] content = os.tobytearray(); file file = new file(path); // excelファイル後のストレージの場所。 outputStream fos = null; try {fos = new fileoutputStream(file); wb.write(fos); os.close(); fos.close();} catch(e.printstacktrace();}} public static decimalformat getdf(){return df;} public static void df( {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 void setnf(decimat nf( nf;} public static arrayList <ArrayList>グラフ(String PATH){file file = new file(path); arrayList <arrayList <object >> result = excelread.readexcel(file); arraylist <double> fors = new arraylist <double>(); //価格シーケンスarraylist> tiring = new ArrayList <String> // arraylist <string> buylist = new arraylist <string>(); // buyer sequence arraylist <string> sellaylist = new arraylist <string>(); // seller sequence arraylist <double> vol = new arraylist <double>(); //トレードボリュームアレイリスト< arraylist <string>(); arrayList <string> shareId = new ArrayList <String>(); for(int i = 2; i <result.size(); i ++){for(int j = 0; j <result.get(i).size(); j ++){//列5は価格を表します。 (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 = temp.split( "¥"); price.add(double.valueof(units [1]));} if(j == 7){string temp =(string)result.get(i).get(j); add(temp); // time.add((string)result.get(i)); 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(share); resultlist.add(vol); runture.add(time);readexcelbook(視覚化ウィンドウ用):
java.awt.eventqueueをインポート; javax.swing.jfilechooserをインポート;インポートjavax.swing.jframe; import javax.swing.grouplayout; import javax.swing.jlabel; Import javax.swing.grouplayout.alignment; Import javax.swing.swing.javax.swing.swing java.awt.event.actionlistener; Import java.awt.event.actionevent; Import java.io.file; public class readexcelbook {private jframe frame; private jtextfield textfield;/***アプリケーションを起動します。 */public static void main(string [] args){eventqueue.invokelater(new runnable(){public void run(){try {readexcelbook window = new readexcelbook(); window.frame.setVisible(true);} catch(Exception e){e.printstrace();} */public readexcelbook(){initialize();}/***フレームの内容を初期化します。 */private void initialize(){frame = new jframe(); frame.setbounds(100、100、450、300); frame.setDefaultCloseoperation(jframe.exit_on_close); jbuttonボタン{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 = new Jlabel( "/u5199/u5165/u4e86d/u76d8/u4e0b/u7684a.xls/u54c8"); grouplayout grouplayout = new grouplayout(frame.getContentPane()); grouplayout.createparlalgroup(alignment.Leading).AddGroup(grouplayout.createSequentionGroup().AddGap(26).AddGroup(grouplayout.createpargreoup(alignment.Leading).AddComponent(lbldaxls).ddcompelent(lbldaxls).ddcompelems(lbldaxls)。 295、grouplayout.preferred_size).addcomponent(button)).addcontainergap(113、short.max_value)))) .AddComponent(Button).AddGap(18).AddComponent(Textfield、grouplayout.preferred_size、grouplayout.default_size、grouplayout.preferred_size).addgap(35).addcomponent(lbldaxls).addcontainergap(119、短い。 ); frame.getContentPane()。setLayout(grouplayout);}}実行結果:
要約します
上記は、JavaがExcel Operation Sourceコードの共有を書いて執筆しているこの記事のすべての内容です。誰にとっても役立つことを願っています。興味のある友人は、このウェブサイトのJava関連のトピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!