⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testexcel.java

📁 留学生信息管理系统 我的工程实习的项目
💻 JAVA
字号:
package Xl;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class TestExcel {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO 自动生成方法存根
                Cell cell = null;
                String sql = null;
                String insertDate = "";
                try {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                		String url="jdbc:odbc:lsd";
                		Connection con=DriverManager.getConnection(url);
                        // 使用事务。不用也无所谓
                        con.setAutoCommit(false);
                        Statement smt = con.createStatement();
                        // if (smt != null) System.out.println("smt is ok!");
                        // 加载excel文件
                        InputStream fs = new FileInputStream("E://j041.xls");
                        // 得到 workbook
                        Workbook wb = Workbook.getWorkbook(fs);
                        /*
                         * 取得sheet,如果你的workbook里有多个sheet 可以利用 wb.getSheets()方法来得到所有的。
                         * getSheets() 方法返回 Sheet[] 数组 然后利用数组来操作。就是多次循环的事。
                         */
                        Sheet sh = wb.getSheet(0);
                        // 利用 sheet 的名字做表名创建数据库表。你可以自己规定
                        sql = "CREATE TABLE table_A "
                                        
                                        + " ("
                                        + "学号 varchar(10),班级 varchar(10),姓名 varchar(5),性别 varchar(5),出生年月日 varchar(10)," +
                                        		"宿舍号 varchar(10),手机 varchar(15),QQ varchar(20),电子邮箱 varchar(50));";
                        smt.execute(sql);

                        /*
                         * 开始循环,取得 cell 里的内容,这里都是按String来取的 为了省事,具体你自己可以按实际类型来取。或者都按
                         * String来取。然后根据你需要强制转换一下。
                         */
                        for (int i = 1; i < sh.getRows(); i++) {
                                for (int j = 0; j < sh.getColumns(); j++) {
                                        cell = sh.getCell(j, i);
                                        if (j != sh.getColumns() - 1)
                                                // System.out.print(cell.getContents() + ",");
                                                insertDate += "'" + cell.getContents() + "',";
                                        else
                                                insertDate += "'" + cell.getContents() + "'";
                                        // System.out.print(cell.getContents());

                                }
                                /*
                                 * 利用循环取每一行的数据。然后开始构造SQL语句。你可以
                                 * 用自己的方法。这个方法我觉得比较偷懒。
                                 */
                                sql = "INSERT INTO table_A(学号,班级,姓名,性别,出生年月日,宿舍号,手机,QQ,电子邮箱)"
                                                + " VALUES(" + insertDate + ");";
                                smt.execute(sql);
                                /*这里把 insertDate设置为空。不然 insertData下次
                                 * 还会叠加上次的内容。也就失去了我们的目的。
                                 */
                                insertDate = "";

                        }
                        /*
                         * 提交事务
                         */
                        con.commit();
                        con.close();//关闭数据库连接
                        wb.close();//关闭打开的文件,切记。切记
                        System.out.println("OK!");
                        // System.out.println(insertDate);
                        // start sql;

                } catch (IOException ex) {
                        ex.printStackTrace();
                } catch (BiffException ex) {
                        ex.printStackTrace();
                }

                catch (ClassNotFoundException ex) {
                        System.out.println("class not found");
                } catch (SQLException ex) {
                        ex.printStackTrace();
                }
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -