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多线程--线程安全问题的相关研究
在刚刚学线程的时候我们经常会碰到这么一个问题:模拟火车站售票窗口售票.代码如下: package cn.blogs.com.isole; /* 模拟火车站售票窗口售票,假设有50张余票 */ publ ...
- Java实现抽奖模块的相关分享
Java实现抽奖模块的相关分享 最近进行的项目中,有个抽奖的需求,今天就把相关代码给大家分享一下. 一.DAO层 /** * 获取奖品列表 * @param systemVersion 手机系统版本( ...
- java的poi技术读,写Excel[2003-2007,2010]
在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...
- Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
[请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...
- VSTO学习笔记(五)批量编辑Excel 2010 x64
原文:VSTO学习笔记(五)批量编辑Excel 2010 x64 近期因为工作的需要,经常要批量处理大量的Excel文件,如果纯手工一个个修改,非常的麻烦,于是写了这么一个帮助类,希望能对你有所帮助. ...
- java的poi技术读取和导入Excel实例
本篇文章主要介绍了java的poi技术读取和导入Excel实例,报表输出是Java应用开发中经常涉及的内容,有需要的可以了解一下. 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用 ...
- Java基于注解和反射导入导出Excel
代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...
- 和朱晔一起复习Java并发(五):并发容器和同步器
本节我们先会来复习一下java.util.concurrent下面的一些并发容器,然后再会来简单看一下各种同步器. ConcurrentHashMap和ConcurrentSkipListMap的性能 ...
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
随机推荐
- 剑指Offer-第一个只出现一次的字符位置
题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 思路 思路一: 使用整型数组对出现次数进行统计. 思路二: 使用Bit ...
- mouseover,mouseout与mouseenter,mouseleave
针对单个元素,使用感一样. 差异提现在有子元素的情况下: mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言. mouseenter和m ...
- 虚拟节点操作——DocumentFragment
文章中转站: DocumentFragment对象 createDocumentFragment()用法总结 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
- 基于【字符】操作的IO接口:Writer、Reader
Reader public class BufferedReaderTest { public static void main(String[] args) throws IOException { ...
- 【Git】Git常见错误
错误1.fatal: refusing to merge unrelated histories 致命的:拒绝合并不相关的历史 原因:比如我本地分支是V1.0,我现在想要合并远程master分支上的内 ...
- python小练习---TCP客户端
这是python黑帽子上的起始练习,我对其中的用到的函数做了注释,以便日后便于理解. 该程序可以访问百度,返回响应信息. 另外,我注释还有一部分UDP客户端的语句,TCP和UDP对比便于记忆. # - ...
- SpringCloud Feign
⒈Feign是什么? Feign是Netflix开发的声明式.模板化的HTTP客户端, Feign可以帮助我们更快捷.优雅地调用HTTP API. SpringCloud微服务项目之间调用是通过Res ...
- Linux下clock计时函数学习【转】
转自:https://www.cnblogs.com/wfwenchao/p/5195022.html 平时在Linux和Winows下都有编码的时候,移植代码的时候免不了发现一些问题.1. 你到底准 ...
- requests库入门10-超时,错误与异常
在实际发布到生产上的接口测试代码,都会加上超时的设置,当服务器超过一定时间没有响应,会报出超时异常.因为requests会自动等待响应.如果不加上超时的设置,可能脚本会一直卡在那里.. 超时设置在请求 ...
- C++类的继承中构造函数和析构函数调用顺序例子
/*当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达派生类次数最多的派生次数最多的类的构造函数为止.简而言之,对象是由“底层向上”开始构造的.因为,构造函数 ...