知道 大家都知道用poi读取xls 当时有时候 必须要读取xlsx 现在我把我做测试的demo分享给大家
package com.lt.main;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import 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;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.lt.util.DBUtil;
import com.lt.util.Oracle;
public class ReadMain {
public static void readFile(File file){
Connection con = null;
PreparedStatement ps = null;
String sql = "insert into t_xls(mobile) values(?)";
int count = 0;
try {
con = DBUtil.getConnection();
ps = con.prepareStatement(sql);
InputStream is = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(is);
XSSFCell cell = null;
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
XSSFSheet st = wb.getSheetAt(sheetIndex);
for (int rowIndex = 0; rowIndex <= st.getLastRowNum(); rowIndex++) {
XSSFRow row = st.getRow(rowIndex);
cell = row.getCell(0);
cell.setCellType(XSSFCell.CELL_TYPE_STRING);
count++;
ps.setString(1, cell.getStringCellValue());
ps.addBatch();
if(count % 10000 == 0){
ps.executeBatch();
}
}
}
ps.executeBatch();
}catch (Exception e) {
e.printStackTrace();
}finally{
DBUtil.close(ps);
DBUtil.close(con);
}
}
public static void main(String[] args) {
DBUtil.startProxool();
readFile(new File("C:\\Documents and Settings\\Administrator\\桌面\\22.xlsx"));
}
}
里面会涉及把内容写入到数据库的