`
qizhangwan
  • 浏览: 33349 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jxl excel向数据库导入数据

    博客分类:
  • java
 
阅读更多
第一步:

/**
     * 得到导入的excel数据并进行判断,不允许有重复的身份证号
     *
     * @param filePath
     *            上传的文件的路径
     * @param tableName
     *            导入数据库的表名
     */
    public List excelImport(String filePath, String tableName,
            String[] tableColumm) {
        // 得到excel文件
        File file = new File(filePath);
        List list = new ArrayList();
        try {
            Workbook book = Workbook.getWorkbook(file);
            // 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3...
            Sheet sheet = book.getSheet(0);
            list = excelSj(sheet, tableName, tableColumm);
        } catch (BiffException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list;
    }



第二步:

/**
     * 导入excel表数据
     *
     * @param sheet
     *            单元表
     * @param tableName
     *            导入的数据库表名
     */
    public List excelSj(Sheet sheet, String tableName, String[] tableColumm) {
        int rows = sheet.getRows();
        List list = new ArrayList();
        for (int i = 1; i < rows; i++) {
            Cell[] cells = sheet.getRow(i);
            if (cells.length == 0) {
                continue;
            } else {
                // 转换excel中的数据
                String[] strs = changeCells(cells, tableColumm);
                // 验证excel里的内容(身份证号的位数和身份证号不允许重复)
                Map map = validateCells(strs);
                if (!map.isEmpty()) {
                    // 如果map为空则执行插入操作
                    addData(tableName, tableColumm, strs);
                } else {
                    list.add(map);
                }
            }
        }
        return list;
    }

第三步:

    // 转换excel中的数据
    public String[] changeCells(Cell[] cells, String[] tableColumm) {
        int colummLength = tableColumm.length;
        String[] strs = new String[colummLength];
        for (int i = 0; i < cells.length; i++) {
            // 看看cell为空时怎么显示的
            String str = cells[i].getContents();
            if (str == null || "''".equals(str)) {
                strs[i] = null;
            } else {
                strs[i] = cells[i].getContents().trim();
            }
        }
        return strs;
    }

第四步:

    // 验证excel里的内容(身份证号的位数和身份证号不允许重复)
    public Map validateCells(String[] strs) {
        Map map = new HashMap();
        // 暂时这里写死了,实际长度为2位
        if (strs[0] == null || "".equals(strs[0])) {
            map.put(strs[0], strs[1]);
        }
        if (strs[0] != null && !"".equals(strs[0])) {
            if (strs[1] == null || "".equals(strs[1])) {
                map.put(strs[0], strs[1]);
            } else {
                // 验证身份证号是否存在
                boolean flag = validateCid(strs[1]);
                if (!flag) {
                    map.put(strs[0], strs[1]);
                }
            }
        }
        return map;
    }
第五步

// 做插入数据的操作
    // tableColumm 数据库中的属性 strs excel表中转换的数据
    public boolean addData(String tableName, String[] tableColumm, String[] strs) {
        boolean flag = false;
        String sql = "";
        String atrrSql = "";
        String excelSql = "";
        String cols = "";
        String values = "";
        if (strs.length > 0) {
            for (int i = 0; i < tableColumm.length - 1; i++) {
                atrrSql += tableColumm[i] + ",";
                excelSql += "'"+strs[i] +"'"+ ",";
            }
            cols = atrrSql + tableColumm[tableColumm.length - 1];
            values = excelSql + "'"+strs[strs.length - 1]+"'";
            sql = " insert into " + tableName + "(" + cols + ") values ("
                    + values + ")";
        }
        try {
            flag = baseDao.insert(sql);
        } catch (ToolException e) {
            e.printStackTrace();
        }
        return flag;
    }



导入的包


import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import org.apache.commons.fileupload.FileItem;
import org.apache.log4j.Logger;

import sdzn.util.page.PageData;
import dao.jdbc.databasedao.IBaseDao;
import dao.jdbc.databasedao.ToolException;

分享到:
评论

相关推荐

    利用jxl把excel中的数据导入数据库

    标题“利用jxl把excel中的数据导入数据库”指的是使用Java Excel API(jxl)这个库来读取Excel文件中的数据,并将这些数据批量地导入到关系型数据库中。这是一个常见的需求,特别是在处理大量结构化数据时,例如进行...

    JXL操作EXCEL 数据库导出EXCEL相关文件

    在IT行业中,处理和操作Excel数据是一项常见的任务,特别是在数据导入导出、分析和报告生成等领域。JXL是一个Java库,专门用于读取、写入和修改Excel文件,它为Java开发者提供了一种方便的方式来处理Excel数据,而...

    jxl 实现的数据库导入导出

    使用了hibernate+struts1+spring + MYSql数据库 能够将数据库整张表的数据导出到excel...也能将excel 的数据导入 到空的 数据库表中。 能够保证导出的数据类型不变。 如要正确运行,必须先执行src 下的backup.sql 脚本

    使用jxl将数据库的数据导出到Excel

    本篇文章将详细介绍如何利用JXL将数据库的数据导出到Excel。 首先,要使用JXL,你需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    jxl excel批量导入

    这个过程在处理大量数据时非常有用,比如将数据库中的数据导出到Excel,或者从Excel文件中导入数据到数据库。 在描述中提到的“博文链接:https://xgtxxxx.iteye.com/blog/1616979”,虽然具体链接无法访问,但可以...

    Excel导入导出 jxl及Poi 工具类

    导入时,通常会解析Excel文件,将数据映射到Java对象,然后存储在数据库中;导出时,从数据库获取数据,生成Excel文件。 为了更好地理解这两个库的用法,你可以查看提供的"Excel导入导出(jxl及Poi)工具类"压缩包中...

    基于JXL的Excel数据导入工具

    《基于JXL的Excel数据导入工具详解》 在IT行业中,数据处理是一项至关重要的任务,尤其是在数据分析、报表生成以及数据库管理等领域。Excel作为一款广泛使用的电子表格软件,因其强大的数据处理能力而备受青睐。...

    Java实现从excel中批量导入数据到数据库

    Java实现从excel中批量高效导入数据到数据库中,包括图片的导入存储,读取图片显示在jsp页面等,需要下载JspSmartUpload.jar和jxl.jar两个jar包,将两个包导入项目才能运行

    数据库内容导入到Excel jxl.jar包

    数据库内容导入到Excel是数据处理中的常见操作,特别是在数据分析、报表生成或数据迁移时。这里我们关注的是使用Java的一个库——jxl.jar,它允许我们方便地读取和写入Excel文件。jxl库是一个非常实用的工具,尤其...

    java导入excel到数据库

    在Java编程环境中,将Excel数据导入到数据库是一项常见的任务,特别是在数据处理和分析场景中。以下是对这个主题的详细说明: 1. **配置文件管理上传路径**: 在项目中,通常会创建一个配置文件(如`application....

    java后台jxl将excel数据导入到MYSQL中

    总之,使用Java和jxl库可以方便地处理Excel文件,配合JDBC可以将数据导入MySQL数据库。通过合理设计和优化,这个过程可以高效且可靠地进行。在处理大量数据时,还要注意数据库性能和并发控制,确保系统的稳定性和...

    将excel的内容导入到数据库.zip

    7. **数据库导入**:文件“将excel的内容导入到数据库中.doc”很可能是详细的操作指南,描述了如何设置数据库连接,创建表结构,以及执行SQL语句来批量导入Excel数据。 在实际操作中,开发者通常会先使用Java库(如...

    JAVA实现Excel表数据导入ORACLE数据库.txt

    ### JAVA实现Excel表数据导入ORACLE数据库 #### 知识点概述 本文将详细介绍如何使用Java编程语言将Excel表格中的数据导入到Oracle数据库中。这一过程涉及到的关键技术包括:使用JDBC连接Oracle数据库、通过ODBC...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...

    java把excel表格数据导入数据库

    在Java编程中,将Excel数据导入数据库是一项常见的任务,尤其在数据处理和分析场景中。以下是如何使用Java从Excel文件读取数据并将其存入数据库的详细步骤。 首先,我们需要一个能够读取Excel文件的库,例如...

    JXL(Java操作Excel文件Oracle数据库)

    综上所述,"JXL(Java操作Excel文件Oracle数据库)"是一个关于Java编程如何借助JXL库处理Excel文件并与Oracle数据库进行数据交换的主题。这个过程涵盖了文件I/O、数据库连接、JDBC操作以及数据处理等多个方面,对于...

    Java web 数据库数据与excel表格形式导入导出.docx

    在数据导入方面,使用了 JXL 技术来读取 Excel 文件中的数据,并将其存储到数据库中。在数据导出方面,使用了 POI 技术来将数据库中的数据写入到 Excel 文件中。 在实际应用中,Java Web 数据库数据与 Excel 表格...

    struts2 poi,jxl向excel表中插入记录源代码

    这个项目的核心功能是允许用户通过前端界面提交数据,然后这些数据会被Struts2的Action处理,并使用POI或JXL库写入到指定的Excel文件中。为了实现这一功能,你需要理解以下几个关键知识点: 1. **Struts2 Action**:...

Global site tag (gtag.js) - Google Analytics