oracle:Excel数据导入oracle,oracle数据导出到Excel:

所需jar包:点击打开链接

jxl-2.6.10.rar    odjbc14.jar

1、首先创建数据库连接

package excel;  
  
import java.sql.Connection;    
import java.sql.DriverManager;    
import java.sql.ResultSet;    
import java.sql.SQLException;    
import java.sql.Statement;    
    
/**  
 * Oracle数据库连接  
 *   
 * @author  
 */    
public class DBUtils {    
    
    private Connection conn = null;    
    private Statement stmt = null;    
    private ResultSet rs = null;    
    
    /** Oracle数据库连接 URL */    
    private final static String DB_URL = "jdbc:oracle:thin:@192.168.2.162:1521:orcl";    
    
    /** Oracle数据库连接驱动 */    
    private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";    
    
    /** 数据库用户名 */    
    private final static String DB_USERNAME = "hefx0323";    
    
    /** 数据库密码 */    
    private final static String DB_PASSWORD = "1";    
    
    /**  
     * 获取数据库连接  
     *   
     * @return  
     */    
    public Connection getConnection() {    
        /** 声明Connection连接对象 */    
        Connection conn = null;    
        try {    
            /** 使用 Class.forName()方法自动创建这个驱动程序的实例且自动调用DriverManager来注册它 */    
            Class.forName(DB_DRIVER);    
            /** 通过 DriverManager的getConnection()方法获取数据库连接 */    
            conn = DriverManager    
                    .getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);    
            stmt = conn.createStatement();    
        } catch (Exception ex) {    
            ex.printStackTrace();    
        }    
        return conn;    
    }    
    
    /**  
     * 查询数据部分  
     *   
     * @return ResultSet  
     */    
    public ResultSet executeQuery(String sqlStr) {    
        if (sqlStr == null || sqlStr.length() == 0)    
            return null;    
        try {    
            this.getConnection();    
            rs = stmt.executeQuery(sqlStr);    
            return rs;    
        } catch (SQLException ex) {    
            ex.printStackTrace();    
            return null;    
        }    
    
    }    
    
    /**  
     * 更新数据部分  
     *   
     * @return 更新是否成功  
     */    
    public boolean executeUpdate(String sqlStr) {    
    
        if (sqlStr == null || sqlStr.length() == 0)    
            return false;    
        try {    
            this.getConnection();    
            stmt.executeUpdate(sqlStr);    
            return true;    
        } catch (SQLException ex) {    
            ex.printStackTrace();    
            return false;    
        } finally {    
            try {    
                if (stmt != null) {    
                    stmt.close();    
                }    
            } catch (SQLException e) {    
                e.printStackTrace();    
            }    
            try {    
                if (conn != null) {    
                    conn.close();    
                }    
            } catch (SQLException e) {    
                e.printStackTrace();    
            }    
    
        }    
    
    }    
    
    public void closeStmt() {    
        try {    
            if (stmt != null) {    
                stmt.close();    
            }    
        } catch (Exception e) {    
            e.printStackTrace();    
        }    
    }    
    
    /**  
     * 关闭数据库连接  
     *   
     * @param connect  
     */    
    public void closeConnection() {    
        try {    
            if (conn != null) {    
                /** 判断当前连接连接对象如果没有被关闭就调用关闭方法 */    
                if (!conn.isClosed()) {    
                    conn.close();    
                }    
            }    
        } catch (Exception ex) {    
            ex.printStackTrace();    
        }    
    }    
    
}    

2、Excel数据导入oracle

创建表格


package excel;

import java.io.File;
import java.io.IOException;

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

/**
 * excel数据导入到oracle
 * 
 * @author
 * 
 */
public class excelToOracle {
	public static void main(String[] args) throws Exception {

		excelToOracle in = new excelToOracle();
		in.insert("C:/Users/EBARA/Desktop/test.xls", "exceltest");

	}

	/**
	 * 
	 * @param path
	 *            要解析的excel文件路径
	 * @param dataTable
	 *            要写入到数据库中的表名
	 * @throws BiffException
	 * @throws IOException
	 */
	public void insert(String path, String dataTable) throws BiffException,
			IOException {

		File file = new File(path);
		// 创建新的Excel 工作簿
		Workbook wb = null;
		wb = Workbook.getWorkbook(file);

		// 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3...
		Sheet sheet = wb.getSheets()[0];
		int cols = sheet.getColumns();// 列数
		int rows = sheet.getRows();// 行数
		String data = "";// 每个单元格中的数据

		DBUtils jdbc = new DBUtils();

		// 拼接要插入的列对应的字段名字,此处要求xls表格第一行的列名应与数据库字段名对应
		String str = "";
		for (int j = 0; j < cols; j++) {
			Cell cell = sheet.getCell(j, 0);
			data = cell.getContents();
			if (j == cols - 1) {
				str += data;
			} else {
				str += data + ",";
			}

		}
		// 插入的数据从第二行开始
		for (int i = 1; i < rows; i++) {

			String sql = "insert into " + dataTable + "(" + str + ") values(";// 拼接sql
			System.out.println(str);
			for (int j = 0; j < cols; j++) {
				Cell cell = sheet.getCell(j, i);
				data = cell.getContents();
				if (j == cols - 1) {
					sql += "'" + data + "'";
				} else {
					sql += "'" + data + "',";
				}

			}
			sql += " )";
			jdbc.executeUpdate(sql);// 执行sql

		}
		jdbc.closeStmt();
		jdbc.closeConnection();
	}

}

注意:


不支持*.xlsx格式,请将Excel文档另存为*.xls。(只改文档后缀名是不管用的,必须另存为)

结果:


2、oracle数据导出到Excel

创建实体类

package excel;

public class person {
	String name;
	String sex;
	String age;
	String hobby;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	public String getHobby() {
		return hobby;
	}

	public void setHobby(String hobby) {
		this.hobby = hobby;
	}
}

导出代码

package excel;

import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class exportExcel {

	public void createXLS() {
		DBUtils jdbc = new DBUtils();
		Connection conn = null;
		try {
			conn = jdbc.getConnection();
			Date now = new Date();
			SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
			String nowdate = df.format(now);
			// 打开文件
			WritableWorkbook book = Workbook.createWorkbook(new File("d:/"
					+ nowdate + ".xls"));
			System.out.println(book);
			System.out.println(nowdate + ".xls");
			// 生成名为"第一页"的工作表,参数0表示这是第一
			WritableSheet sheet = book.createSheet("第一页", 0);

			// 创建预编译语句对象,一般都是用这个而不用Statement
			PreparedStatement pre = null;
			// 创建一个结果集对象
			ResultSet rs = null;
			String sql = "select * from EXCELTEST";// 预编译语句
			pre = conn.prepareStatement(sql);// 实例化预编译语句
			rs = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
			// 查询数据库中所有的数据
			List<person> list = new ArrayList<person>();
			while (rs.next()) {
				// 创建person对象
				person p = new person();
				p.name = rs.getString("name");
				p.age = rs.getString("age");
				p.sex = rs.getString("sex");
				p.hobby = rs.getString("hobby");

				// 将person放入list中
				list.add(p);
			}
			// 首行标题
			Label labelA0 = new Label(0, 0, "姓名");
			Label labelB0 = new Label(1, 0, "性别");
			Label labelC0 = new Label(2, 0, "年龄");
			Label labelD0 = new Label(3, 0, "爱好");
			sheet.addCell(labelA0);
			sheet.addCell(labelB0);
			sheet.addCell(labelC0);
			sheet.addCell(labelD0);
			for (int i = 0; i < list.size(); i++) {
				Label labelAi = new Label(0, i + 1, list.get(i).getName());
				Label labelBi = new Label(1, i + 1, list.get(i).getSex());
				Label labelCi = new Label(2, i + 1, list.get(i).getAge());
				Label labelDi = new Label(3, i + 1, list.get(i).getHobby());
				sheet.addCell(labelAi);
				sheet.addCell(labelBi);
				sheet.addCell(labelCi);
				sheet.addCell(labelDi);
			}

			// 写入数据并关闭文件
			book.write();
			book.close();
			System.out.println("创建文件成功!");

		} catch (Exception e) {
			System.out.println(e);
		}
	}

	public static void main(String[] args) {
		new exportExcel().createXLS();
	}
}

结果展示:


猜你喜欢

转载自blog.csdn.net/lycoris_red/article/details/80534544