JAVA匯入匯出EXCEL(POI)
阿新 • • 發佈:2019-01-01
首先去官網下載POI的ja包
http://poi.apache.org/download.html#POI-3.15
加入jar包(紅色部分就夠了)
然後就是編寫程式碼了
建立java類 (此處程式碼找的一位網友寫的,感覺很簡單明瞭,就拿來用了,勿噴)
若想操作資料庫,寫個連線,把讀取的程式碼換下,返回一個List集合,for迴圈中加以修改
list傳入寫的方法裡迴圈插入就ok了,匯出也一樣不做類似修改了
工具類在最後,我的修改在前面
Users u = null;
List<Users> list = new ArrayList<Users>();
Sheet sheet1 = wb.getSheetAt(0);
for (Row row : sheet1) {
u = new Users();
String userId = row.getCell(0).getStringCellValue();
String userName = row.getCell(1).getStringCellValue();
String password = row.getCell(2).getStringCellValue();
String sex = row.getCell(3).getStringCellValue();
u.setUserId(Integer.parseInt(userId));
u.setUserName(userName);
u.setPassword(password);
u.setSex(sex);
list.add(u);
System.out.println(u.toString());
}
return list;
public static void insert(List<Users> list){
for(Users l:list){
String sql = "insert into users (userName, password, sex) values(?,?,?)";
PreparedStatement pstmt = DBUtil.getPstmt(sql);
try {
pstmt.setString(1, l.getUserName());
pstmt.setString(2, l.getPassword());
pstmt.setString(3, l.getSex());
DBUtil.update();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.allClose();
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadWriteExcelUtil {
public static void read(String filePath) throws IOException {
String fileType = filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
InputStream stream = new FileInputStream(filePath);
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook(stream);
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook(stream);
} else {
System.out.println("您輸入的excel格式不正確");
}
Sheet sheet1 = wb.getSheetAt(0);
for (Row row : sheet1) {
for (Cell cell : row) {
System.out.print(cell.getStringCellValue() + " ");
}
System.out.println();
}
}
public static boolean write(String outPath) throws Exception {
String fileType = outPath.substring(outPath.lastIndexOf(".") + 1, outPath.length());
System.out.println(fileType);
// 建立工作文件物件
Workbook wb = null;
if (fileType.equals("xls")) {
wb = new HSSFWorkbook();
} else if (fileType.equals("xlsx")) {
wb = new XSSFWorkbook();
} else {
System.out.println("您的文件格式不正確!");
return false;
}
// 建立sheet物件
Sheet sheet1 = (Sheet) wb.createSheet("sheet1");
// 迴圈寫入行資料
for (int i = 0; i < 5; i++) {
Row row = (Row) sheet1.createRow(i);
// 迴圈寫入列資料
for (int j = 0; j < 8; j++) {
Cell cell = row.createCell(j);
cell.setCellValue("測試" + j);
}
}
// 建立檔案流
OutputStream stream = new FileOutputStream(outPath);
// 寫入資料
wb.write(stream);
// 關閉檔案流
stream.close();
return true;
}
public static void main(String[] args) {
try {
ReadWriteExcelUtil.write("D:" + File.separator + "out.xlsx");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
ReadWriteExcelUtil.read("D:" + File.separator + "out.xlsx");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}