需要的包有jxl-2.6.6.jar和连接数据库的sqljdbc.jar
我没有进行特别大数据量的测试,自己处理的excel数据是37列*1.4万行,大小在10M左右
数据库是连的sqlserver,根据自己情况稍微改一下就能用
package Test1;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ExcelDelivery_Order_Details2 {
static final String JDBC_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
static final String DB_URL = "jdbc:sqlserver://localhost:1433;DatabaseName=ReportCenter";
// Database credentials
static final String USER = "sa";
static final String PASS = "111";
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\Administrator\\Desktop\\1月数据\\明细(2018-01-01至2018-01-09).xls");
InputStream in;
Workbook workbook = null;
Connection conn = null;
Statement stmt = null;
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
PreparedStatement st = null;
try {
in = new FileInputStream(file);
workbook = Workbook.getWorkbook(in);
// 获取第一张Sheet表
Sheet sheet = workbook.getSheet(0);
// 获得多少行
int total = sheet.getRows();
// 遍历每一行,第一行不读
for (int j = 1; j < total; j++) {
// 多少行
Cell[] cells = sheet.getRow(j);//
// 然后再取每一个Cell中的值
if (cells[0].getContents().toString().length() != 0) {
// 多少列
String content = "";// sql语句
String address = "";// 地址
String deliverytime0 = "";
String audittime0 = "";
//
String shopname = "";
String orderuser = "";
String systemordernumber = "";
String ordernumber = "";
String productname = "";
// String id = cells[0].getContents().toString().trim();//序号
shopname = cells[1].getContents().toString().trim();
orderuser = cells[2].getContents().toString().trim();
systemordernumber = cells[3].getContents().toString().trim();
ordernumber = cells[4].getContents().toString().trim();
productname = cells[5].getContents().toString().trim();
content = "insert into Delivery_Order_Details (SHOPNAME,ORDERUSER,SYSTEMORDERNUMBER,ORDERNUMBER,PRODUCTNAME,"
+ ") values ('" + shopname + "','" + orderuser + "','" + systemordernumber + "','"
+ ordernumber + "','" + productname + "','" + "')";
System.out.println(content);
stmt.executeUpdate(content);
System.out.println("完成");
}
}
} finally {
// finally block used to close resources
try {
if (stmt != null)
conn.close();
} catch (SQLException se) {
} // do nothing
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
}
}