求助java读取excel文件,再写到数据库中遇到了问题!
我想用javaexcel api读取excel文件,再写到mysql数据库中遇到了问题!
其中excel中有67个字段,第一行为表头,所以从第二行读取,依次写到数据库中。
程序代码如下:
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class ReadXLS
{
public static void main(String args[])
{
try
{
//打开文件
Workbook book=
Workbook.getWorkbook(new File( "测试.xls "));
//获得第一个工作表对象
Sheet sheet=book.getSheet(0);
System.out.println( "共有 "+sheet.getColumns()+ "列! "); //输出 “共有6列”
System.out.println( "共有 "+sheet.getRows()+ "行! "); //输出 “共有7行”
//要求xls模板和数据表字段要一一对应
Connection con=null;
Statement stmt=null;
Class.forName( "com.mysql.jdbc.Driver ").newInstance();//加载驱动程序
String url= "jdbc:mysql://localhost:3306/dhgl1 ";
con=DriverManager.getConnection(url, "root ", "root "); //建立连接
System.out.println( "数据库连接成功,准备插入数据...... ");
stmt=con.createStatement();
String sql= " ";
for (int j=1;j <sheet.getRows();j++)//从第二行开始插入(第一行为表头)
{
Cell cell[]=sheet.getRow(j); //获取第j+1行数据
System.out.println( "chang du shi : "+cell.length); //如果第67(最后一列)行数据为空,则输出66,若不为空则输出为67,不知道为什么??
for (int i=0;i <cell.length;i++)
cell[i]=sheet.getCell(i, j);//获取第i列第j行数据
//18-22 34 52
float cell18=Float.parseFloat(cell[18].getContents());
float cell19=Float.parseFloat(cell[19].getContents());
float cell20=Float.parseFloat(cell[20].getContents());
float cell21=Float.parseFloat(cell[21].getContents());
float cell22=Float.parseFloat(cell[22].getContents());
float cell34=Float.parseFloat(cell[34].getContents());
float cell52=Float.parseFloat(cell[52].getContents());
System.out.println( "正在插入第 "+(j+1)+ "行数据...... ");
sql= "insert into biyes values( ' "+cell[0].getContents()+ " ', ' "+cell[1].getContents()+ " ', ' "+cell[2].getContents()+