Java中读取Excel,数据导入Excel

1。数据导入
import jxl.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.*;
import com.et.util.ComDate;
import com.et.util.StrUtil;
public class WriteToExcel{

public static void writeExcel(OutputStream os) throws Exception {
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
jxl.write.WritableSheet ws = wwb.createSheet("TestSheet1", 0);
jxl.write.Label labelC = new jxl.write.Label(0, 0, "卡编号");
ws.addCell(labelC);


labelC = new jxl.write.Label(1, 0, "卡密码");
ws.addCell(labelC);
labelC = new jxl.write.Label(2, 0, "卡点数");
ws.addCell(labelC);
labelC = new jxl.write.Label(3, 0, "生成时间");
ws.addCell(labelC);
labelC = new jxl.write.Label(4, 0, "制卡人");
ws.addCell(labelC);

// 此处的密码,卡号,每张卡的编号,生成者都可以从外部传进来,这里主要是为了演示
int nums=5; //生成卡的数量
String allPD="86598,54789,25478,96548,87458";//所有卡的密码,随机生成
String allCardID="20060310001,20060310002,20060310003,20060310004,20060310005";
//所有卡的ID,卡ID也是用StrUtil.generalSrid随机生成的,这里这是为了演示,就随便写了几个
String card_point="100";//每张卡的点数
String operator="admin";//卡的生成者

String cardIds[]=allCardID.split(",");// 所有的卡id
String pd[]=allPD.split(",");//所有的卡密码
String date=ComDate.getDateString(); //此处的ComDate是一个获得当前时间的方法,需要自己写,不是系统自带的

for(int i=0;i<nums;i++){
labelC = new jxl.write.Label(0, (i+1), cardIds[i]);
ws.addCell(labelC);
labelC = new jxl.write.Label(1, (i+1), pd[i]);
ws.addCell(labelC);
labelC = new jxl.write.Label(2, (i+1),card_point);
ws.addCell(labelC);
labelC = new jxl.write.Label(3, (i+1),date);
ws.addCell(labelC);
labelC = new jxl.write.Label(4, (i+1),operator);
ws.addCell(labelC);
}

//写入Exel工作表
wwb.write();
//关闭Excel工作薄对象
wwb.close();
}

public static void main(String[] args)throws Exception{

//此处路径&文件名都可以从外部传进来

String path="D:\\leslir";

String filename=StrUtil.generalSrid()+".xls"; //StrUtil.generalSrid方法是一个自己写的得到随机数据的方法,一般取得的是系统的毫秒数在加上随机数字
File f=new File(path,filename);

f.createNewFile();
writeExcel(new FileOutputStream(f));

}
}

2.读取数据
/*
* 创建日期 2006-3-10
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.test;

import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
/**
* @author new
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class ReadExcel {

public static void ReadMethod(String filename)throws Exception{
try
{

//首先构造一个输入流
InputStream is = new FileInputStream(filename);
//jxl的Workbook得到这个输入流
jxl.Workbook rwb = Workbook.getWorkbook(is);

//Workbook得到第一个sheet

Sheet[] sheets=rwb.getSheets();//获得当前Excel表共有几个sheet
int p=sheets.length;
System.out.println("此表共有几个sheet------->"+p);

for(int w=0;w<p;w++){ //将每个sheet中的内容全部读取出来

//在从Excel中读取数据的时候不需要知道每个sheet有几行,有那多少列
Sheet rs = rwb.getSheet(w);
int cols=rs.getColumns();
for(int i=0;i<cols;i++){
Cell a00 = rs.getCell(i, 0);
String stra00 = a00.getContents();
System.out.print("*****"+stra00+"*****");
}
System.out.println("\n");
int rows=rs.getRows();


for(int d=1;d<rows;d++){ //行循环,Excel的行列是从(0,0)开始的
for(int t=0;t<cols;t++){ //列循环
Cell b00=rs.getCell(t,d);
String strb=b00.getContents();
System.out.print(strb+"********");
}
System.out.println("\n");
}

System.out.println("第"+(w+1)+"个sheet结束"+"\n");
}


}
catch (Exception e)
{
e.printStackTrace();
}
}

public static void main(String args[])throws Exception{

String filename="D:\\leslir\\12006031011593270.xls";//此文件就是前面数据导入生成的文件
ReadMethod(filename);

}

}
在这里,你只要将我随机生成卡号的方法,&获得当前时间的方法加上,就可以正确执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值