java把Excel文件数据导入数据库
发布时间:2020-05-28 20:34:43 所属栏目:Java 来源:互联网
导读:java把Excel文件数据导入数据库
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 import java.io.*;
import java.sql.*;
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.poifs.filesystem.POIFSFileSystem;
public class ReadxlXLSToDB {
// 定义总列数
private int columnNum;
public int getColumnNum() {
return columnNum;
}
public void setColumnNum(int columnNum) {
this.columnNum = columnNum;
}
private static Connection conn = null;
private static Statement stmt = null;
static String dbUrl = "jdbc:mysql://localhost:3306/test?user=root&password=blue&useUnicode=true&characterEncoding=utf8";
private final static String driver = "com.mysql.jdbc.Driver";
private static boolean connectionDB() {
try {
Class.forName(driver);
conn = DriverManager.getConnection(dbUrl);
stmt = conn.createStatement();
} catch (ClassNotFoundException cnfex) {
System.err.println("加载数据库驱动失败!");
cnfex.printStackTrace();
return false;
} catch (SQLException sqle) {
System.err.println("无法连接数据库!");
sqle.printStackTrace();
return false;
} catch (Exception e) {
System.err.println("错误");
return false;
}
return true;
}
public void readSheet() {
POIFSFileSystem fs = null;
HSSFWorkbook wb = null;
String sql = "",sql1 = "",sql2 = "";
try {
fs = new POIFSFileSystem(new FileInputStream("d:1.xls"));
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = null;
HSSFCell cell = null;
String name = "";
int rowNum,cellNum;
int i,j;
// 获取总行数
rowNum = sheet.getLastRowNum();
for (i = 0; i <= rowNum; i++) {
row = sheet.getRow(i);
cellNum = row.getLastCellNum();
for (j = 0; j < cellNum; j++) {
cell = row.getCell((short) j);
name = cell.getStringCellValue();
sql1 = sql1 + "num" + (j + 1) + ",";
sql2 = sql2 + "'" + name + "',";
}
sql = "insert into xls ("
+ sql1.subSequence(0,sql1.lastIndexOf(",")) + ") values ("
+ sql2.substring(0,sql2.lastIndexOf(",")) + ")";
System.out.println(sql);
try {
stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
System.err.println("在插入数据时第" + (i + 1) + "失败!");
}
sql1 = "";
sql2 = "";
}
}
public void readOut() {
connectionDB();
String sql = "select * from xls";
try {
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
for (int i = 1; i <= columnNum; i++)
System.out.print(rs.getString(i) + "t");
System.out.println();
}
} catch (SQLException e) {
System.err.println("无法查询!");
e.printStackTrace();
}
}
public void deleteDB() {
connectionDB();
String sql = "drop table xls";
try {
stmt.executeUpdate(sql);
} catch (SQLException e) {
System.err.println("无法删除数据表!");
e.printStackTrace();
}
}
public void creatTable(int columnNum) {
int i;
String sql = "",sql1 = "";
for (i = 1; i <= columnNum; i++)
sql1 = sql1 + "`" + "num" + i + "` varchar(50),";
sql = "create table xls(`id` int(11) NOT NULL auto_increment," + sql1
+ " PRIMARY KEY (`id`))ENGINE=MyISAM DEFAULT CHARSET=utf8";
try {
stmt.executeUpdate(sql);
System.out.println(sql);
} catch (SQLException e) {
System.err.println("无法创建数据表!");
e.printStackTrace();
}
}
public static void main(String args[]) {
ReadxlXLSToDB db = new ReadxlXLSToDB();
db.setColumnNum(5);
if (ReadxlXLSToDB.connectionDB()) {
db.creatTable(db.getColumnNum());
db.readSheet();
} else {
System.out.println("不好意思,连接不成功!你失败了!!!");
}
db.readOut();
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
