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);
}
}
在这里,你只要将我随机生成卡号的方法,&获得当前时间的方法加上,就可以正确执行。
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);
}
}
在这里,你只要将我随机生成卡号的方法,&获得当前时间的方法加上,就可以正确执行。