ตัวอย่างโค้ด Java การอ่านและเช็คไฟล์ excel ว่าเป็น 2007 หรือ 2010
สวัสดีคับ ตัวอย่างโค้ด Java ตัวอย่างนี้เรามาดูตัวอย่างการอ่านและเช็คไฟล์ excel ว่าไฟล์นั้นเป็นไฟล์ excel 2007 หรือว่า 2010 กันคับ ซึ่งทั้ง 2 แบบจะใช้ตัวอ่านที่ต่างกัน
ตัวอย่างโค้ด
package javacodeexam;
import java.io.File;
import java.io.FileNotFoundException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelXlsAndXlsx {
public static void main(String[] args) {
File file = new File("ExcelFile");
Workbook workbook = null;
try(NPOIFSFileSystem fs = new NPOIFSFileSystem(file)){
// XLS FILE
workbook = new HSSFWorkbook(fs.getRoot(), false);
}
catch(FileNotFoundException ex){
System.out.println("ไม่พบไฟล์นี้อยู่ในเซิฟเวอร์ " + ex);
return;
}
catch(Exception ex){
System.out.println("ไฟล์นี้ไม่สามารถอ่านเป็น XLS ได้ : " + ex);
}
if(workbook == null){
try(OPCPackage pkg = OPCPackage.open(file)){
// XLSX FILE
workbook = new XSSFWorkbook(pkg);
}
catch(Exception ex){
System.out.println("ไม่เป็นไฟล์ Excel : " + ex);
return;
}
}
}
}
จากโค้ดจะเห็นว่าไฟล์ Excel ที่เป็น .xls(2007) นั้นจะใช้ HSSFWorkbook ในการอ่านไฟล์ ส่วนไฟล์ที่เป็น xlsx(2010) นั้นจะใช้ XSSFWorkbook ในการอ่าน
ในตัวอย่างเราจะใช้ try catch ครอบเอาไว้เพื่อตรวจสอบว่าเป็นไฟล์ xls หรือเปล่าก่อน แล้วนำมาเก็บในตัวแปร workvook เราจะใช้ NPOIFSFileSystem กับ OPCPackage.open เพื่อใช้สำหรับอ่านไฟล์ Excel ที่มีขนาดใหญ่ แต่ถ้างานของเราต้องการอ่านไฟล์ Excel ที่มีขนาดเล็กละก็ใช้แค่ HSSFWorkbook กับ XSSFWorkbook แค่นี้ก็พอครับ
ไม่มีความคิดเห็น :
แสดงความคิดเห็น