Java Mapping Column and CSV file |
Java Mapping Column and CSV file การ Mapping Column ระหว่างไฟล์ CSV กับ Class จะช่วยให้เราสามารถจัดการกับชุดข้อมูลของไฟล์ CSV ได้ง่ายและสะดวกยิ่งขึ้น จะจำเป็นเมื่อเราต้องการนำ ชุดของข้อมูลไปใช้งานอย่างอื่นด้วย และตัวนี้ผมได้เลือกใช้ Library ของ opencsv เข้ามาจัดการกับการ Map ระหว่าง CSV กับ Class
โฟเดอร์จัดเก็บไฟล์ CSV
thaicreate.csv
C001,Win Weerachai,[email protected],TH,1000000,600000
C002,John Smith,[email protected],UK,2000000,800000
C003,Jame Born,[email protected],US,3000000,600000
C004,Chalee Angel,[email protected],US,4000000,100000
ไฟล์ CSV เมื่อเปิดผ่านโปรแกรม Excel
Example การ Mapping ตัว Column กับข้อมูลของ CSV ด้วย Library ของ opencsv
Dpwnload opencsv
การ Add Jar Library ใช้งาน External Library บน Eclipse IDE ในการเขียน Java
โครงสร้างไฟล์ของ Project
Customer.java (Class สำหรับ Mapping Column)
package com.java.myapp;
public class Customer {
private String CustomerID;
private String Name;
private String Email;
private String CountryCode;
private String Budget;
private String Used;
// CustomerID
public void setCustomerID(String sCustomerID) {
this.CustomerID = sCustomerID;
}
public String getCustomerID() {
return CustomerID;
}
// Name
public void setName(String sName) {
this.Name = sName;
}
public String getName() {
return Name;
}
// Email
public void setEmail(String sEmail) {
this.Email = sEmail;
}
public String getEmail() {
return Email;
}
// CountryCode
public void setCountryCode(String sCountryCode) {
this.CountryCode = sCountryCode;
}
public String getCountryCode() {
return CountryCode;
}
// Budget
public void setBudget(String sBudget) {
this.Budget = sBudget;
}
public String getBudget() {
return Budget;
}
// Used
public void setUsed(String sUsed) {
this.Used = sUsed;
}
public String getUsed() {
return Used;
}
}
MyClass.java
package com.java.myapp;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;
import au.com.bytecode.opencsv.bean.ColumnPositionMappingStrategy;
import au.com.bytecode.opencsv.bean.CsvToBean;
public class MyClass {
public static void main(String[] args) {
String path = "C:\\java\\thaicreate.csv";
try {
ColumnPositionMappingStrategy map = new ColumnPositionMappingStrategy();
map.setType(Customer.class);
String[] col = new String[] {"CustomerID", "Name",
"Email", "CountryCode", "Budget", "Used"};
map.setColumnMapping(col);
CsvToBean csv = new CsvToBean();
CSVReader reader = new CSVReader(new FileReader(path));
List list = csv.parse(map, reader);
for (Object object : list) {
Customer cm = (Customer) object;
System.out.print(cm.getCustomerID());
System.out.print(" - ");
System.out.print(cm.getName());
System.out.print(" - ");
System.out.print(cm.getEmail());
System.out.print(" - ");
System.out.print(cm.getCountryCode());
System.out.print(" - ");
System.out.print(cm.getBudget());
System.out.print(" - ");
System.out.print(cm.getUsed());
System.out.println("");
}
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
|