importExcel

package jsl.test;

import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

 public class ImportExcel {
   
         /**
          * (最基本的导入操作.)
          *
          * Author lip(Lizg)
          * 2009-1-9
          *
          * 同上一个一样,这一个也是简单的导入操作,其实同样是最基本的需求而已,
          * 再加上一些处理就可以了,比如自己字段的处理,导入文件是否保存下来之类的.
          *
          * 这里同样以一个main来说明一下其基本的操作过程.
          *
          * 导入,就是从Excel中去取出数据,然后写入到数据库(这里就是数据库操作吧,相对于其他的Excel间操作之类的就省略)
          *
          * 第一,同样是先准备好数据来源.这里不是建立好Excel,而是在那个盘符下建立一个导入Excel,并有数据,然后导入即可.
          *
          * 接上一个例子.这一个同样是对MySQL操作,当然可以换成其他的诸如Oracle,SQLServer之类的.
          *
          */
         public static void main(String[] args) {
             //(第一:)首先申明读取的的文件来源.再次申明,这里的都是直接的,我认为最基本但是又容易看懂的.
             File importExcel = new File("c:\\测试.xls");
             //这里确认这个文件是存在的,当然可以判断一下.用file.exists().看其是否存在,
             /**(第一步完成)*/
            
             //(第二:)然后就先来连接数据库吧.同样是对同一个数据库操作,只是这里新增加一个表.见最下面.
             try{
                 //数据库连接
                 Class.forName("com.mysql.jdbc.Driver").newInstance();
                 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
                 PreparedStatement prep = conn.prepareStatement("insert into importexcel (id,name) values (?,?)");
                 //这里是插入,用这个来的比较方便,所以就直接用这个接口来操作吧.
                 //System.out.println("Success");
                 /**(第二步完成)*/
                
                 /**
                  * 到这里,已经连接好了数据库了,然后就是上传了,这里的sql语句就是插入,很简单,这里来看看读出数据.
                  *
                  */
                
                 //(第三步:)操作Excel文件读出里面的数据,其实思想是一样的,就是普通思维,
                 //获取Excel文件---->读取每一个工作单元(就跟前一个导入一样的是每一个整体表格)---->读取(一个表格)每一行的内容------(读取完成.)
                
                 //首先是获取文件,也就是上面的Excel文件,这里是或者这个Excel文件.然后就是对之进行操作.
                 Workbook workBook = Workbook.getWorkbook(importExcel);
                
                 //其次就是获取这个Excel文件的工作表格.这里就基本处理,当然可以不用数组形式,因为只有第一个工作表格有数据,其他两个没有,
                 //但是为了一般化,就仍然这样操作.
                 Sheet[] sheet = workBook.getSheets();
                 //这里大家看一下API就能够知道,其实可以通过参数来获得哪一个表格就行了,
                 //比如Sheet sheet = workBook.getSheet(1);
                
                
                 //这里就到了最后了,这里的最后就是对于工作表格的最后,既然是用数组来得到的,当然会对每一个工作表格进行读取操作,
                 //这里的读取就是读取每一个工作表格的每一行数据.
                 int sheet_i_num = 0;//获取工作表格的行数
                 String id   = "";
                 String name = "";//用来得到每一个单元格的内容,下面用到.
                 if(sheet!=null&&sheet.length>0){//判断一下
                     for(int sheetNum=0;sheetNum < sheet.length; sheetNum++){//获得有多少个工作表格,对每一个操作.
                         //(3.1这里首先要得到要读取的工作表格有多少行.)
                         sheet_i_num = sheet[sheetNum].getRows();
                        
                         //接下来就是对每一行进行的去数据了,此处从rowNum = 1开始,第一行一般是标题
                         for(int rowNum = 1; rowNum < sheet_i_num ; rowNum++){
                             //这里就开始对每一个单元格进行操作了.
                             //显然,sheet[]第一个参数就是哪一个工作表格,然后getRow的就是哪一行.然后就赋值给Cell进行操作.
                             Cell[]  cells = sheet[sheetNum].getRow(rowNum);
                             //这里就开始读出每一行的数据了,这里不做其他的判断,比如,数据是整数否,是否超出字符串长度,是否为空等等,
                             id   = cells[0].getContents();
                             name = cells[1].getContents();//这里就是对每一个列来获取,cells就是把这一行的某一列赋值给你所要操作的值.
                            
                             //数据是取到了,然后就是直接插入到数据库当中了,
                             prep.setInt(1, Integer.parseInt(id));
                             prep.setString(2, name);
                             prep.executeUpdate();
                             System.out.println(id+"--------"+name);
                         }
                     }
                 }
                 workBook.close();
                 prep.close();
                 conn.close();
             }catch(Exception e){
                 System.out.println(e.getMessage());
             }
             finally{
                
             }
         }
   
     }
   
     /**
     第一步:建立数据表:(表名称叫做importexcel)
     DROP TABLE IF EXISTS `importexcel`;
     CREATE TABLE `importexcel` (
       `Id` int(11) NOT NULL auto_increment,
       `name` varchar(50) default NULL,
       PRIMARY KEY  (`Id`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
   
     这个时候,里面什么都没有,
     可以用select看看,
      */
   
     /*
     然后就是操作这个数据表字段.往里面添加数据,这里明显是 只有两个字段,第一个是ID,(int整数类型)
                                                            第二个是NAME,(varchar字符串类型) 
     很明显都能过看得出来.     
     然后再来一次select试试.
   
      */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值