1. ขวดที่ต้องนำเข้า
1. Commommons-Collections4-4.1.jar
2.poi-3.17-beta1.jar
3.poi-ooxml-3.17-beta1.jar
4.poi-ooxml-schemas-3.17-beta1.jar
5.xmlbeans-2.6.0.jar
2. API หลัก
1. Import org.apache.poi.ss.usermodel.workbook, สอดคล้องกับเอกสาร Excel;
2. Import org.apache.poi.hssf.usermodel.hssfworkbook ซึ่งสอดคล้องกับเอกสาร Excel ในรูปแบบ XLS;
3.Import org.apache.poi.xssf.usermodel.xssfworkbook ซึ่งสอดคล้องกับเอกสาร Excel ในรูปแบบ XLSX;
4. อิมพอร์ต org.apache.poi.ss.usermodel.sheet ซึ่งสอดคล้องกับแผ่นงานในเอกสาร Excel;
5. นำเข้า org.apache.poi.ss.usermodel.row ซึ่งสอดคล้องกับบรรทัดในแผ่นงาน
6. Import org.apache.poi.ss.usermodel.cell ซึ่งสอดคล้องกับเซลล์
3. รหัสมีดังนี้
แพ็คเกจ POI; นำเข้า Java.io.FileInputStream; นำเข้า Java.io.filenotfoundException; นำเข้า Java.io.ioException; นำเข้า Java.io.Inputstream; นำเข้า java.util.arrayList; นำเข้า java.util.linkedhashmap นำเข้า java.util.map.entry; นำเข้า org.apache.poi.hssf.usermodel.hssfworkbook; นำเข้า org.apache.poi.ss.usermodel.cell; นำเข้า org.apache.poi.ss.usermodel.dateutil org.apache.poi.ss.usermodel.sheet; นำเข้า org.apache.poi.ss.usermodel.workbook; นำเข้า org.apache.poi.ss.usermodel.workbook; นำเข้า org.apache.poi.xsf.usermodel.xssfworkbook; = null; แผ่นชีต = null; แถวแถว = null; รายการ <แผนที่ <สตริงสตริง >> list = null; สตริง celldata = null; String filePath = "D: //test.xlsx"; คอลัมน์สตริง [] = {"ชื่อ", "อายุ", "คะแนน"}; wb = readexcel (filepath); if (wb! = null) {// ใช้เพื่อจัดเก็บข้อมูลในรายการตาราง = arrayList ใหม่ <แผนที่ <สตริงสตริง >> (); // รับแผ่นแผ่นแรก = wb.getSheetat (0); // รับจำนวนสูงสุดของแถว int rownum = sheet.getphysicalnumberofrows (); // รับแถวแถวแรก = sheet.getrow (0); // รับจำนวนสูงสุดของคอลัมน์ int colnum = row.getphysicalnumberofcells (); สำหรับ (int i = 1; i <rownum; i ++) {map <string, string> map = new linkedHashMap <string, string> (); row = sheet.getrow (i); if (row! = null) {สำหรับ (int j = 0; j <colnum; j ++) {celldata = (สตริง) getCellFormatValue (row.getCell (j)); map.put (คอลัมน์ [j], celldata); }} else {break; } list.add (แผนที่); }} // ความเงียบสงบผ่านรายการที่แยกวิเคราะห์สำหรับ (แผนที่ <สตริง, สตริง> แผนที่: รายการ) {สำหรับ (รายการ <สตริง, สตริง> รายการ: map.entryset ()) {system.out.print (entry.getKey ()+":"+entry.getValue ()+","); } system.out.println (); }} // อ่านสมุดงานสาธารณะ Excel สาธารณะ ReadExcel (String FilePath) {Workbook WB = NULL; if (filepath == null) {return null; } string extstring = filepath.substring (filepath.lastindexof (".")); InputStream คือ = null; ลอง {is = new FileInputStream (FilePath); if (". xls" .Equals (extstring)) {return wb = new hssfworkbook (IS); } อื่นถ้า (". xlsx" .equals (extstring)) {return wb = new xssfworkbook (IS); } else {return wb = null; }} catch (filenotfoundException e) {e.printStackTrace (); } catch (ioexception e) {e.printstacktrace (); } return wb; } วัตถุคงที่สาธารณะ getCellFormatValue (เซลล์เซลล์) {Object cellValue = null; if (cell! = null) {// สวิตช์ประเภทเซลล์ตัดสิน (cell.getCellType ()) {case cell.cell_type_numeric: {cellValue = string.valueof (cell.getNumericCellValue ()); หยุดพัก; } case cell.cell_type_formula: {// ตัดสินว่าเซลล์อยู่ในรูปแบบวันที่หรือไม่ถ้า (dateutil.iscelldateFormatted (เซลล์)) {// แปลงเป็นรูปแบบวันที่ yyyy-mm-dd cellvalue = cell.getDateCellValue (); } else {// cellValue ตัวเลข = string.valueof (cell.getNumericCellValue ()); } หยุดพัก; } case cell.cell_type_string: {cellValue = cell.getRichStringCellValue (). getString (); หยุดพัก; } ค่าเริ่มต้น: cellValue = ""; }} else {cellValue = ""; } ส่งคืน cellvalue; -4. ผลการดำเนินงาน
ก่อนที่จะเรียกใช้รหัสตรวจสอบให้แน่ใจว่ามีเอกสาร test.xlsx บนดิสก์ D มิฉะนั้นจะไม่พบไฟล์รายงาน ส่วนหัวของตารางในเอกสาร Excel จะต้องสอดคล้องกับ String columns[] = {"name","age","score"} ในรหัส
สรุป
ด้านบนเป็นวิธีการแยกวิเคราะห์ Java Excel (สองรูปแบบของ XLS และ XLSX) แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!