Java 本周四、五的相关研究——Excel 的文件管理(数据库初步)

日期:2018.9.28

星期五

博客期:013

  说到这里,就二话不多说了!这次研习的是与Excel表相关联的方法

  1、导入jar包(需要自己下载)

  2、AccountManager类的实现(关键看非重复部分!)

package pop;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Scanner; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException; public class AccountManager {
//----------------<数据库>-----------------//
//数据组
private Account ku[] = new Account[5];
//记录名称
private String Infor = "files/accountinformation.xls";
private String List = "files/accountlist.xls";
private String Copy = "files/Lin.xls";
private String Today = "2018-09-28";
//----------------<界面函数>---------------//
//初始界面
public void FirstWin() throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎使用中国工商银行自动柜员系统");
System.out.println("***************************************************************");
System.out.println(" 请输入您的账号:");
Scanner sc = new Scanner(System.in);
String x = sc.next();
int existfor = 5;//此处用于测试是否账号不存在
for(int i=0;i<5;i++)//检测数组中是否存有该数据!
if(ku[i].GetaccountID().compareTo(x)==0)
{
existfor = i;
break;
}
if(existfor==5)
{
System.out.println(" #:该卡不是工行卡!");
FirstWin();
}
else
SecondWin(existfor); }
//密码输入界面
public void SecondWin(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 请输入您的密码:");
int times = 0;//记录输入密码的次数
Scanner sc = new Scanner (System.in);
while(times<3){
String saving = sc.nextLine();
if(ku[pass].Getaccountpassword().compareTo(saving)!=0)
System.out.println("密码录入错误");
else
break;
times++;
}
if(times==3)
FirstWin();
else
MainWin(pass);
}
//主界面
void MainWin(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 1、存款;");
System.out.println(" 2、取款;");
System.out.println(" 3、转账汇款;");
System.out.println(" 4、修改密码;");
System.out.println(" 5、查询金额;");
System.out.println("****************************************************************");
System.out.println(" 请输入:");
Scanner sc = new Scanner (System.in);
int temp = sc.nextInt();
switch(temp)
{
case 1:ku[pass].Setoperatetype(1);writefile();fun1(pass);break;
case 2:ku[pass].Setoperatetype(2);writefile();fun2(pass);break;
case 3:ku[pass].Setoperatetype(3);writefile();fun3(pass);break;
case 4:ku[pass].Setoperatetype(4);writefile();fun4(pass);break;
case 5:ku[pass].Setoperatetype(5);writefile();fun5(pass);break;
default:MainWin(pass);break;
}
}
//存款界面
public void fun1(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入存款金额;");
Scanner sc = new Scanner (System.in);
if(sc.hasNext("q"))
FirstWin();
else
{
int JinE = sc.nextInt();//记录金额
if(JinE<=0)
{
System.out.println(" #:输入金额有误");
fun1(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+JinE);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()+JinE);
//-----------------------[数据载入文档]
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户存款操作成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"SaveMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(JinE));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//----------------------------------------
MainWin(pass);
}
}
}
//取款界面
public void fun2(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户每日可以支取2万元。");
System.out.println(" 1、100元");
System.out.println(" 2、500元");
System.out.println(" 3、1000元");
System.out.println(" 4、1500元");
System.out.println(" 5、2000元");
System.out.println(" 6、5000元;");
System.out.println(" 7、其他金额");
System.out.println(" 8、退卡");
System.out.println(" 9、返回");
System.out.println("****************************************************************");
System.out.println(" #:请选择");
Scanner sc = new Scanner (System.in);
int choice = sc.nextInt();
switch(choice){
case 1:
{
if(ku[pass].Getaccountbalance()<100)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+100);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-100);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作100元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(100));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 2:
{
if(ku[pass].Getaccountbalance()<500)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+500);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-500);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作500元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(500));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 3:
{
if(ku[pass].Getaccountbalance()<1000)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+1000);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-1000);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作1000元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(1000));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 4:
{
if(ku[pass].Getaccountbalance()<1500)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+1500);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-1500);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作1500元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(1500));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 5:
{
if(ku[pass].Getaccountbalance()<2000)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+2000);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-2000);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作2000元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(2000));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 6:
{
if(ku[pass].Getaccountbalance()<5000)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+5000);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-5000);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作5000元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(5000));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 7:
{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 请输入取款金额:");
int num = sc.nextInt();
if(ku[pass].Getaccountbalance()<num)
{
System.out.println("账户余额不足");
fun2(pass);
}
else
{
ku[pass].Setamount(ku[pass].Getamount()+num);
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-num);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("****************************************************************");
System.out.println(" 当前账户取款操作"+num+"元成功。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
writefile();
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"GetMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(num));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
break;
}
case 8:
{
FirstWin();
break;
}
case 9:
{
MainWin(pass);
break;
}
default:fun2(pass);break;
}
}
//转账汇款界面
public void fun3(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 请输入转账账户;");
Scanner sc = new Scanner (System.in);
if(sc.hasNext("q"))
FirstWin();
String temp = sc.next();
int tube = 5;//记录账户
for(int i=0;i<5;i++){
if(ku[i].GetaccountID().compareTo(temp)==0)
{
tube = i;
break;
}
}
if(tube==5)
{
System.out.println(" #:该用户不存在");
fun3(pass);
}
else
{
fun3_half(pass,tube);
}
}
public void fun3_half(int pass,int pass_to) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 请输入转账金额;");
Scanner sc = new Scanner (System.in);
if(sc.hasNext("q"))
FirstWin();
int JinE= sc.nextInt();
if(JinE>ku[pass].Getaccountbalance())
{
System.out.println("账户余额不足");
fun3_half(pass,pass_to);
}
else if(JinE<=0)
fun3_half(pass,pass_to);
else
{
StringBuffer sxw = new StringBuffer(ku[pass_to].Getaccountname());
sxw.deleteCharAt(0);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 请确认是否向*"+sxw+"转账"+JinE+"元。");
String makesure = sc.next();
if(sc.hasNext("q"))
FirstWin();
if(makesure.compareTo("Y")==0)
{
ku[pass].Setaccountbalance(ku[pass].Getaccountbalance()-JinE);
ku[pass].Setamount(ku[pass].Getamount()+JinE);
ku[pass_to].Setaccountbalance(ku[pass_to].Getaccountbalance()+JinE);
ku[pass_to].Setamount(ku[pass_to].Getamount()+JinE);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 当前账户向*"+sxw+"转账"+JinE+"元。");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
}
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"RemoveMoney");
sheet.addCell(lab);
lab = new Label(3,i,Integer.toString(JinE));
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
//-----------------------------------
MainWin(pass);
}
}
//修改密码界面
public void fun4(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
String str1,str2;
System.out.println(" 请输入当前密码: ");
Scanner sc = new Scanner (System.in);
str1 = sc.next();
if(sc.hasNext("q"))
FirstWin();
if(ku[pass].Getaccountpassword().compareTo(str1)==0)
{
System.out.println(" 请输入修改密码:");
str1 = sc.next();
if(sc.hasNext("q"))
FirstWin();
System.out.println(" 请输入确认密码:");
str2 = sc.next();
if(sc.hasNext("q"))
FirstWin();
if(str1.compareTo(str2)==0)
{
ku[pass].Setaccountpassword(str1);
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 当前账户密码修改成功");
//----------------------------------------------------<以下为文件更新阶段
Copyfile();
File f = new File(List);
WritableWorkbook workbook = Workbook.createWorkbook(f);
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 0; i < 1; i++)
{
Label lab = new Label(0,i,"账号");
sheet.addCell(lab);
lab = new Label(1,i,"操作日期");
sheet.addCell(lab);
lab = new Label(2,i,"操作内容");
sheet.addCell(lab);
lab = new Label(3,i,"操作金额");
sheet.addCell(lab);
}
for(int i=1;i<2;i++)
{
Label lab = new Label(0,i,ku[pass].GetaccountID());
sheet.addCell(lab);
lab = new Label(1,i,Today);
sheet.addCell(lab);
lab = new Label(2,i,"ChangPassword");
sheet.addCell(lab);
lab = new Label(3,i,"**********");
sheet.addCell(lab);
}
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
for(int i=0;i<rsRows;i++)
{
for(int j=0;j<rsColumns;j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i+2,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
writefile();
//-----------------------------------
MainWin(pass);
}
else
{
System.out.println(" 修改密码与确认密码不一致");
fun4(pass);
}
}
else
{
System.out.println(" 当前密码录入错误");
fun4(pass);
}
}
//查询金额界面
public void fun5(int pass) throws IOException, RowsExceededException, WriteException, BiffException{
System.out.println("***************************************************************");
System.out.println(" 欢迎"+ku[pass].Getaccountname()+"使用中国工商银行自助柜员系统");
System.out.println("***************************************************************");
System.out.println(" 当前账户余额为:"+ku[pass].Getaccountbalance()+"元");
System.out.println(" 账户清单信息为:");
int sx = 1;
Workbook readwb = Workbook.getWorkbook(new FileInputStream(Copy));
Sheet readsheet = readwb.getSheet(0);
int rsRows = readsheet.getRows();
Copyfile();
for(int i=0;i<rsRows;i++)
{
Cell cell = readsheet.getCell(0,i);
if(ku[pass].GetaccountID().compareTo(cell.getContents())==0)
{
cell = readsheet.getCell(1,i);
String t1 = cell.getContents();
cell = readsheet.getCell(2,i);
String t2 = cell.getContents();
cell = readsheet.getCell(3,i);
String t3 = cell.getContents();
System.out.println(sx+"、"+t1+" "+t2+" "+t3);
sx++;
}
}
MainWin(pass);
}
//----------------<构造函数>---------------//
private void ResetDate(){
int y,m,d;
Calendar cal=Calendar.getInstance();
y=cal.get(Calendar.YEAR);
m=cal.get(Calendar.MONTH);
d=cal.get(Calendar.DATE);
String ms;
m++;
if(m<10)
ms = (String)("0"+m);
else
ms = (String)(""+m);
String ds;
if(d<10)
ds = (String)("0"+d);
else
ds = (String)(""+d);
Today = (String)(y+"-"+ms+"-"+ds);
}
public AccountManager() throws BiffException, IOException{
for(int i=0;i<5;i++)
ku[i] = new Account();
ResetDate();
readfile();
}
//写入
public void writefile() throws IOException, RowsExceededException, WriteException{
WritableWorkbook workbook = Workbook.createWorkbook(new File(Infor));
WritableSheet sheet = workbook.createSheet("Test",0);
Label lab = new Label(0,0,"账号");
sheet.addCell(lab);
Label labs = new Label(1,0,"账户名称");
sheet.addCell(labs);
Label labt = new Label(2,0,"最后操作日期");
sheet.addCell(labt);
Label labf = new Label(3,0,"目前操作数");
sheet.addCell(labf);
Label labfi = new Label(4,0,"密码");
sheet.addCell(labfi);
Label labsi = new Label(5,0,"余额");
sheet.addCell(labsi);
Label labse = new Label(6,0,"流水金额");
sheet.addCell(labse);
for (int i = 1; i <= 5; i++)
{
String t = ku[i-1].GetaccountID();
Label lab1 = new Label(0,i,t);
sheet.addCell(lab1);
t = ku[i-1].Getaccountname();
Label lab2 = new Label(1,i,t);
sheet.addCell(lab2);
t = ku[i-1].Getoperatedate();
Label lab3 = new Label(2,i,t);
sheet.addCell(lab3);
t = Integer.toString(ku[i-1].Getoperatetype());
Label lab4 = new Label(3,i,t);
sheet.addCell(lab4);
t = ku[i-1].Getaccountpassword();
Label lab5 = new Label(4,i,t);
sheet.addCell(lab5);
t = Integer.toString(ku[i-1].Getaccountbalance());
Label lab6 = new Label(5,i,t);
sheet.addCell(lab6);
t = Integer.toString(ku[i-1].Getamount());
Label lab7 = new Label(6,i,t);
sheet.addCell(lab7);
}
workbook.write();
workbook.close();
}
//读入
public void readfile() throws BiffException, IOException{
InputStream instream = new FileInputStream(Infor);
Workbook readwb = Workbook.getWorkbook(instream);
Sheet readsheet = readwb.getSheet(0);
for(int i=1;i<=5;i++)
{
String t1,t2,t3,t4,t5,t6,t7;
Cell cell = readsheet.getCell(0,i);
t1 = cell.getContents();
cell = readsheet.getCell(1,i);
t2 = cell.getContents();
cell = readsheet.getCell(2,i);
t3 = cell.getContents();
cell = readsheet.getCell(3,i);
t4 = cell.getContents();
cell = readsheet.getCell(4,i);
t5 = cell.getContents();
cell = readsheet.getCell(5,i);
t6 = cell.getContents();
cell = readsheet.getCell(6,i);
t7 = cell.getContents();
ku[i-1].Set(t1,t2,t3,Integer.parseInt(t4),t5,Integer.parseInt(t6),Integer.parseInt(t7));
}
}
//复制文件
public void Copyfile() throws RowsExceededException, WriteException, IOException, BiffException{
InputStream instream = new FileInputStream(List);
Workbook readwb = Workbook.getWorkbook(instream);
Sheet readsheet = readwb.getSheet(0);
int rsColumns = readsheet.getColumns();
int rsRows = readsheet.getRows();
WritableWorkbook workbook = Workbook.createWorkbook(new File(Copy));
WritableSheet sheet = workbook.createSheet("Test",0);
for (int i = 1; i < rsRows; i++)
{
for (int j = 0; j < rsColumns; j++)
{
Cell cell = readsheet.getCell(j,i);
Label lab = new Label(j,i-1,cell.getContents());
sheet.addCell(lab);
}
}
workbook.write();
workbook.close();
}
//----------------<主函数>-----------------//
public static void main(String[] args) throws IOException, RowsExceededException, WriteException, BiffException {
AccountManager ap = new AccountManager();
ap.FirstWin();
}
}

附带文件截图:

Java 本周四、五的相关研究——Excel 的文件管理(数据库初步)

上一篇:多线程Java Socket编程示例(转)


下一篇:使用 Cglib 实现多重代理