이틀 동안 교사가 데이터베이스를 만들고 실험 트랜잭션의 모든 데이터를 데이터베이스로 가져 오도록 도와주었습니다. 그러나 나는 매일 실험실에 머물고 싶지 않았습니다. 분위기가 너무 우울해서 데이터를 먼저 엑셀에 읽고 실험실로 가져와 수입하는 것에 대해 생각했습니다.
데이터는 이와 같은 것으로 판명되었습니다. 다른 실험에는 특수 폴더가 있습니다. 실험 이름의 폴더 아래에 다른 클래스에 대한 폴더가 있습니다. 클래스 날짜 폴더는 실험에 대한 Excel 데이터에 다른 시간에 저장됩니다. 원래 Excel에는 수업과 시간이 없었습니다. 이제 Excel 이름과 클래스 이름을 읽음 으로써이 정보를 열로 추가해야합니다.
아래는 소스 코드, hehe 및 시각화 창도 만들어졌습니다.
클래스 엑셀 리드 :
import java.awt.list; import java.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.decmematement; 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.hsf.hsf 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; org.apache.poi.xssf.usermodel.xssfsheet; import org.apache.poi.xssf.usermodel.xssfworkbook; public class excelread {문자열 경로; public string getPath () {return public void setpath (string path) {this.path;} // static privity private format decimformat decimformat decimformat dep Public Dep Public Dep Public; Decimalformat ( "0"); // 기본 셀 형식 형식 날짜 문자열 private static simpledateformat sdf = new SimpledateFormat ( "yyyy-mm-dd hh : mm : ss"); // 형식 숫자 개인 정적 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 return readexcel2007 (file);} else {// process ecxel2003 retexcel 2003 (file)}}}}} @return arraylist에서 반환 결과를 저장하고 스토리지 구조는 2 자리 배열 * lists.get (0) .get (0) .get (0)을 의미합니다 */public static arraylist <artatic arraylist <object>> readexcel2003 (file file) {arraylist <abject <jorct >> rowlist = readexcel2003을 의미합니다. ArrayList <ArrayList <Object>> (); ArrayList <Object> Collist; hssfworkbook wb = new Hssfworkbook (new FileInputStream (file)); hssfsheet sheet = wb.getsheetat (0); hssfrow 행; hssfcell 셀; 객체 값 <; getfirstrown <, rowcount (ggepirstrown <); sheet.getPhysicalNumberOfrows (); i ++) {row = sheet.getrow (i); collist = new arraylist <객체> (); if (row == null) {// if (i! = sheet.getphysicalnumberofrows ()) {// retain} else {rowCount ++;} for (int j = row.getFirstCellNum (); j <= row.getLastCellNum (); j ++) {cell = row.getCell (j); if (cell == null || cell.getCellType () == hssfcell.cell_type_blank) {// j! row.getLastCellNum ()) {// 행 collist.add ( "")의 마지막 셀인지 변호합니다. value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric : if ( "@". equals (cell.getCellStyle (). getDataFormatString (getDataFormatString ()) {value = df.format (cell.getNumericCellValue ());} else ( "일반"). .getDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (셀 .getnumericcellValue ());} // system.out.println (i + " +"rong " + j rog"is number "is number" + 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)의 엔드 스위치;} // end for i return rowlist;} catch (Exception e) {return null;}} public static arraylist <arraylist <object>> readexcel2007 (파일) {arraylist <areaylist) rowList = new ArrayList <arrayList <Object>> (); ArrayList <boodment> Collist; XSSFWorkBook WB = New XSSFWorkbook (new FileInputStream (File)); XSSFsheet Sheet = wb.getSheetat (0); XSSFROW ROW; XSSFCELL 셀; rowCount <sheet.getPhysicalNumberOfrows (); i ++) {row = sheet.getrow (i); collist = new arraylist <객체> (); if (row == null) {// if (i! = sheet.getPhysicalNumberOfrows ()) {//}}; else {rowCount ++;} for (int j = row.getFirstCellNum (); j <= row.getLastCellNum (); j ++) {cell = row.getCell (j); if (cell == null || cell.getCellType () == hssfcell.cell_type_blank) {// j! row.getLastCellNum ()) {// 행 Collist.add ( "")의 마지막 셀인지 판단합니다. value = cell.getStringCellValue (); break; case xssfcell.cell_type_numeric : if ( "@". equals (cell.getCellStyle (). getDataFormatString (getDataFormatString (getDataFormatString)) {df.format (cell.getNumericCellValue ());} else ( "General" .getDataFormatString ())) {value = nf.format (cell.getNumericCellValue ());} else {value = sdf.format (hssfdateutil.getJavadate (셀 .getnumericcellValue ());} // system.out.println (i + " +"rong " + j rog"is number "is number" + 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)에 대한 종료; root = new File (FilePath); file [] files = root.listFiles (); ArrayList fileList = new ArrayList (); for (file file) {if (file.isdirectory ()) {filelist.addall (getfiles (file.getabsolutepath ());} else {string newpath = file.getabsolutepath (); if (newPath.contains ( "Transaction")) {filelist.add (newpath);}}}}}}}}}}}}} path3) {String Filepath = path3; arraylist filleList = getFiles (filepath); arrayList <ArrayList> resultAll = new ArrayList <ArrayList> (); for (int i = 0; i <fileList.size (); i ++) {String path = (string) fileList.get (i); system.out.println (path); arraylist <arraylist> result = graph (path); string [] path2 = path.split ( "////"); int num = result.get (0) .size (); araylist result2 = new arraylist (); 0; 결과;} else {for (int j = 0; j <result.size (); j ++) {for (int k = 0; k <result.get (j) .size (); k ++) {resultall.get (j) .add (result.get (j));}}}} 쓰기 excel (recattall, "); writeExcel (arrayList <TarrayList> result, String Path) {if (result == null) {return;} hssfworkbook wb = new hssfworkbook (); hssfsheet sheet = wb.createsheet ( "sheet1"); for (int i = 0; i <result.get (0); 시트 .createrow (i); for (int j = 0; j <result.size (); j ++) {hssfcell cell = row.createcell ((short) j); cell.setCellValue (result.get (j) .get (i) .ToString ());}} bytearRayOutputStreams = newtearRayOutStream (); (ioException 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 (exception e) {e.printstacktrace ();}} public static eTicimalformat getDf () {return df;} public void setdf (decimalformat 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) {excelred.nf) {excelred.nf. ArrayList <ArrayList> Graph (String Path) {파일 파일 = 새 파일 (Path); ArrayList <ArrayList <Object>> result = ExcelReadcel (File); ArrayList <Tole> Price = New ArrayList <Double> (); // Price Sequence arrayList <String> Time = New ArrayList> (); // Time Araylist <Straylist = New ArrayList> (); ArrayList <string> (); // 구매자 시퀀스 ArrayList <string> selllist = new ArrayList <String> (); // Seller Sequence arrayList <Double> vol = new ArrayList <Tole> (); // 거래량 ArrayList <String> share = new ArrayList <String> (); // stock Name ArrayList <STRANT> ID = NEW ArrayList <string> (); ArrayList <string> shareId = new ArrayList <string> (); for (int i = 2; i <result.size (); i ++) {for (int J = 0; (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 (j); String [] units = temp.split ( "¥"); price.add (double.valueof (단위 [1]); result.get (i) .get (j));} if (j == 2) {selllist.add ((String) result.get (i) .get (j));} if (j == 6) {vol.add ((string) result.get (i)); ArrayList <ArrayList> (); resultList.Add (shareID); resultList.Add (id); resultList.Add (BuyList); resultList.Add (SellList); resultList.Add (share); resultList.Add (price); resultList.Add (vol); retudlist.Add (recudlist.Add);readexcelbook (시각화 창) :
import java.awt.eventqueue; import javax.swing.jfileChooser; import javax.swing.jframe; import javax.swing.grouplayout; import javax.swing.jlabel; import javax.swing.grouplayout.alignment; import javax.swing.swing.swing.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 (); winde */public readexcelbook () {initialize ();}/*** 프레임의 내용을 초기화합니다. */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.setfileselectionMode (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 lbldaxls = new jlabel ( "/u5199/u5165/u4e86d/u76d8/u4e0b/u7684a.xls/u54c8"); grouplayout grouplayout = new Grouplayout (frame.getContentPane ()); GrouPlayOut.sethorizontalgroup grouplayout.createparallelgroup (alignment.leading) .addgroup (grouplayout.createsequentialgroup () .addgap (26) .addgroup (grouplayout.createparallelgroup (alignment.leading) .addcomponent (lbldaxls). grouplayout.preferred_size, 295, grouplayout.preferred_size) .addcomponent (button)) .addcontainergap (113, short.max_value))); grouplayout.setverticalgroup (grouplayout.createparallproup (alignment.leading)). .addGroup (grouplayout.createsequentialgroup () .addgap (31) .addcomponent (button) .addgap (18) .addcomponent (textfield, grouplayout.preferred_size, grouplayout.default_size, grouplayout.preferred_size) .addgap (35). .addcomponent (lbldaxls) .addcontainergap (119, short.max_value)); frame.getContentPane (). setLayout (grouplayout);}}실행 결과 :
요약
위의 것은 Java가 Excel Operation Source Code 공유를 작성하고 쓰기에 관한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 웹 사이트에서 Java 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!