Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)

写入:

private void insertFile(HttpServletRequest request,
            HttpServletResponse response) throws IOException {

        String path_member = request.getParameter("path_member");
        List list = this.insert("f:/tmp001.xls", "gs_sale_members"); // url
                                                                        // table
        PrintWriter pw = response.getWriter();
        pw.print("{\"result\":" + list + "}"); // 返回插入失败的行数
        pw.close();
    }
/**
     *
     * @param path
     *            要解析的excel文件路径
     * @param dataTable
     *            要写入到数据库中的表名
     * @throws BiffException
     * @throws IOException
     */
    public List insert(String path, String dataTable) throws IOException,
            IOException {

        int a = 0;
        File file = new File(path);

        List list = new ArrayList();

        HSSFWorkbook rwb = null;
        // 创建输入流
        InputStream is = new FileInputStream(path);
        rwb = new HSSFWorkbook(is);

        // 得到工作簿
        HSSFSheet sheet = rwb.getSheetAt(0);

        int rsRows = sheet.getLastRowNum();// 获取总行数
        String simNumber = "";// 每个单元格中的数据

        DBConn jdbc = new DBConn();

        String str = "gs_salemen_seq,gs_salemen_name,gs_salemen_id,gs_salemen_papers_id,gs_salemen_jgid,gs_salemen_type,gs_salemen_status";// 拼接要插入的列
        HSSFRow row = sheet.getRow(0); // 获取第一行
        int rsColumns = row.getPhysicalNumberOfCells();// 列数
        // for (short j = 0; j < rsColumns; j++) {
        // HSSFCell cell = row.getCell(j);
        // simNumber = cell.getStringCellValue();
        // if (j == rsColumns - 1) {
        // // 最后一列不用加逗号
        // str += simNumber;
        // } else {
        // str += simNumber + ",";
        // }
        // }
        for (short i = 0; i < rsRows; i++) {
            HSSFRow row1 = sheet.getRow(i); // 获取行
            // 拼接sql
            String sql = "insert into " + dataTable + "(" + str + ") values(";

            for (short j = 0; j < rsColumns; j++) {

                HSSFCell cell = row1.getCell(j);
                if (cell != null) {
                    row1.getCell(j).setCellType(cell.CELL_TYPE_STRING);
                }
                System.out.println(cell);
                simNumber = cell.getStringCellValue();
                if (j == 0) {
                    sql += base.createId("gs_salemen_seq") + ",‘" + simNumber
                            + "‘,";
                } else if (j == 5) {
                    sql += "‘" + simNumber + "‘";
                } else {
                    sql += "‘" + simNumber + "‘,";
                }
            }
            sql += " )";
            a = jdbc.executeUpdate(sql);// 执行sql
            if (a == 0) {
                list.add(i);
            }
            // 查看拼的sql
            System.out.println("第" + (i + 1) + "行" + sql);
        }
        jdbc.closeStmt();
        jdbc.closeConnection();
        return list;
    }
package com.lj.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Oracle数据库连接
 *
 */
public class DBConn {

    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.1.7:1521:orcl";

    /** Oracle数据库连接驱动 */
    private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";

    /** 数据库用户名 */
    private final static String DB_USERNAME = "scott";

    /** 数据库密码 */
    private final static String DB_PASSWORD = "tiger";

    /**
     * 获取数据库连接
     *
     * @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 int executeUpdate(String sqlStr) {

        if (sqlStr == null || sqlStr.length() == 0)
            return 0;
        try {
            this.getConnection();
            stmt.executeUpdate(sqlStr);
            return 1;
        } catch (SQLException ex) {
            ex.printStackTrace();
            return 0;
        } 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();
        }
    }

}

读出:

private void outExcel(HttpServletRequest request,
            HttpServletResponse response) throws IOException {
        // 输出地址
        String loc = request.getParameter("loc");
        // 查询的表
        String table = request.getParameter("table");

        File file = new File(loc);
        if (!file.exists()) {

            file.createNewFile();
        }
        String sql = "select * from " + table;
        List<Map<String, Object>> list = base.querySql(sql);
        write2excel(list, file);
    }
public static void write2excel(List<Map<String, Object>> list, File file) {

        HSSFWorkbook excel = new HSSFWorkbook();

        HSSFSheet sheet = excel.createSheet("dept");

        HSSFRow firstRow = sheet.createRow(0);

        HSSFCell cells[] = new HSSFCell[3];

        String[] titles = new String[] { "deptno", "dname", "loc" };

        for (int i = 0; i < 3; i++) {

            cells[0] = firstRow.createCell(i);

            cells[0].setCellValue(titles[i]);

        }

        for (int i = 0; i < list.size(); i++) {

            HSSFRow row = sheet.createRow(i + 1);

            // Computer computer = computers.get(i);

            HSSFCell cell = row.createCell(0);

            System.out.println(list.get(i).get("deptno"));

            cell.setCellValue(list.get(i).get("deptno").toString());

            cell = row.createCell(1);

            cell.setCellValue((String) list.get(i).get("dname"));

            cell = row.createCell(2);

            cell.setCellValue((String) list.get(i).get("loc"));

            cell = row.createCell(3);

        }

        OutputStream out = null;

        try {

            out = new FileOutputStream(file);

            excel.write(out);

            out.close();

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善),布布扣,bubuko.com

时间: 2024-10-16 13:24:07

Java -> 把Excel表格中的数据写入数据库与从数据库中读出到本地 (未完善)的相关文章

java生成excel表格和pdf并实现下载弹出框

今天在pdf和excel中都实现了在浏览器弹出下载框 将之前在网上查找的生成excel表格代码稍微修改下: public class CreateSimpleExcelToDisk { /** * @功能:手工构建一个简单格式的Excel */ private static List<News> getNews() throws Exception { List<News> data = new ArrayList<News>(); NewsDao dao = new

Java读取excel表格

Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显示MS Office文件.这由Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库.它包含类和方法对用户输入数据或文件到MS Office文档进行解码. Apache POI Apache POI是Apache软件基金会提供的100%开源库.大多

桌面支持--Excel表格里的数据全部变成了时间或者日期格式的时候怎么办???

20150601 问题描述:Excel表格里的数据全部变成了时间或者日期格式的时候怎么办??? 解决办法: 1. 打开Excel,任意选中一单元格,单击鼠标右键,选择设置单元格格式. 2. 在数字自定义类型中,找到如图中前缀为[$-F400]的类型格式(或者类似的比如[$-F800]),点击删除.3. 保存,大功告成!再次打开,世界清静了.

怎么把excel表格内的数据导入数据库?

第一种方法: 思路:想要把excel表格内的数据直接导入数据库不是那么容易,可以把excel表格另存为.csv格式的文档(特点:内容以逗号分割):然后通过一系列的文档操作函数处理成为一个二维数组,然后再进一步处理即可导入数据库 思路正确但有时会出现问题(explode这里会出现问题,因为数据中可能也包含","号所以一般不采用此方法,请看第二种方法) 1:准备一个需要导入数据的excel表格: 2:另存为.csv后缀的文档(特点:内容以逗号分割) 3:进行文档操作函数处理 1 $file

hbase使用MapReduce操作4(实现将 HDFS 中的数据写入到 HBase 表中)

实现将 HDFS 中的数据写入到 HBase 表中 Runner类 1 package com.yjsj.hbase_mr2; 2 3 import com.yjsj.hbase_mr2.ReadFruitFromHDFSMapper; 4 import com.yjsj.hbase_mr2.WriteFruitMRFromTxtReducer; 5 import org.apache.hadoop.conf.Configuration; 6 import org.apache.hadoop.c

Find_Excel_From_Dir获取特定目录下的excel表格,将数据复制出来

1 # -*- coding: utf-8 -*- 2 # -主要思路-,获取解压后的日志文件包 3 # -获取特定目录下的excel表格,将数据复制出来 4 import xdrlib ,sys 5 import xlrd 6 import os 7 import time 8 class Search_Excel_From_Dir: 9 #file_name = "example"#此处确定要搜寻的文件名字 10 Bdc_Csv_list = []#Excel文件列表 11 Bdc

将DataSet中的数据写入XML

protected void Button1_Click(object sender, EventArgs e) { string conStr = ConfigurationManager.ConnectionStrings["lianxiConnectionString"].ConnectionString; using (SqlConnection conn=new SqlConnection(conStr)) { conn.Open(); using (SqlCommand c

SQL大圣之路笔记——把Excel中的数据通过Access导入到DataBase中

把Excel中的数据通过Access导入到DataBase中 1.打开Access ,点击“EXTERNAL DATA",选择上传”excel",选中需要导入的excel,点击ok. 2.选择excel中需要上传数据的sheet,点击”next",再点击“next”,选择列明,更改 Data Type (Short Text类型导入后会成为nvarchar);点击“next”,再点击“next” ,设定导入DB之后的表名,点击“finish”. 3.右击表名,点击“Expor

将Excel中的数据读入到GridView控件中

使用Excel文件作为数据源,其实现的代码为: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("excel.xls") + "; Extended Properties=Excel 8.0; 实例代码: private DataSet CreateDataSource()    {        string strCon;        strCon = "Provider