基于java的简单Excel表格处理

基于java的简单Excel信息写入


需要jxl

选择
取消
错误
主程序
菜单
创建
读取
添加
查询
删除
修改
初始化
写入
确认
删除
选列
确认
修改
退出
exit

菜单

import java.util.Scanner;
public class Menu {
	public Menu()throws Exception {
		while(true) {
			System.out.println("--------文件操作--------");
			System.out.println("1.创建表格             2.读取表格");
			System.out.println("3.添加一行             4.按学号查找");
			System.out.println("5.按学号删除         6.按学号修改");
			System.out.println("        0.退出!");
			System.out.println("--------主目菜单--------");
			//读入
			Make MK=new Make();
			Scanner scanf=new Scanner(System.in);
			int i=scanf.nextInt();
			switch(i) {
				case 1:{
					MK.Create();
					break;
				}case 2:{
					MK.Read();
					break;
				}case 3:{
					MK.add();
					break;
				}case 4:{
					MK.Find();
					break;
				}case 5:{
					MK.Delete();
					break;
				}case 6:{
					MK.Alter();
					break;
				}case 0:{
					System.out.println("退出程序");
					System.exit(0);
				}default:{
					System.out.println("输入错误,请重新输入!");
					break;
				}
			}
		}
	}
}

实现方法

/**
 * @author lpc
 *
 */
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import jxl.*;
import jxl.write.*;


public class Make {
	//1.创建
	public void Create() throws Exception{
		
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//创建可读写wordkbook
			WritableWorkbook wb=Workbook.createWorkbook(f);
			//创建可读写sheet
			WritableSheet sheet=wb.createSheet("Unnamed",0);
			System.out.println("是否写入默认数据?(1是/0否):");
			if(scanf.nextInt()==1) {
				//拆分信息
				String xx="学号:姓名:年龄:成绩|181001:张三:20:95|181002:李四:21:87|181003:20:89";
				String temp[]=xx.split("\\|");
				String[][] stu;
				stu=new String[temp.length][];
				for(int i=0;i<temp.length;i++) {
					stu[i]=temp[i].split(":");
					}
				//写入表格
				for(int i=0;i<stu.length;i++) {
					for(int j=0;j<stu[i].length;j++) {
						Label lb=new Label(j,i,stu[i][j]);
						sheet.addCell(lb);
						}
					}
				System.out.println("成功创建表格并写入默认信息!");
			}else {
				System.out.println("成功创建空表格!");
			}
			//写入文件
			wb.write();
			//关闭
			wb.close();
	}
	//2.读取
	public void Read() throws Exception{
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//创建一个只读对象表
		Workbook wb=Workbook.getWorkbook(f);
		//获取sheet对象
		Sheet[] sheet=wb.getSheets();
		//获取表格内容
		for(int i=0;i<sheet.length;i++) {//按sheet表顺序
			for(int j=0;j<sheet[i].getRows();j++) {//按行(rows)来
				for(int k=0;k<sheet[i].getColumns();k++) {//按本行的列数一个个输出
					//第i个表的k列j行的内容
					String content=sheet[i].getCell(k, j).getContents();
					
					System.out.print(content+"\t");//输出这个content并且对齐
				}
				System.out.println();//每一行换行
			}
		}
		wb.close();
	}
	//3.添加
	public void add() throws Exception{
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//获取Workbook对象,只读
		Workbook wb=Workbook.getWorkbook(f);
		//创建可读写Workbook副本,写入源文件
		WritableWorkbook fwb=Workbook.createWorkbook(f, wb);
		//创建sheet对象
		WritableSheet sheet=fwb.getSheet(0);
		//取原表行数
		int row=sheet.getRows();
		//创建cell对象并添加进sheet
		System.out.println("输入一行数据,使用 : 分隔列:");
		str=scanf.nextLine();
		String stu[]=str.split(":");
		for(int i=0;i<stu.length;i++) {
			Label lb=new Label(i,row,stu[i]);
			sheet.addCell(lb);
		}
		//将workbook内容输出到文件
		fwb.write();
		//关闭对象
		fwb.close();
		wb.close();
	}
	//4.查找
	public void Find() throws Exception{
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//获取Workbook对象,只读
		Workbook wb=Workbook.getWorkbook(f);
		Sheet[] sheet=wb.getSheets();
		System.out.println("输入需要查找的学号:");
		String stu_id=scanf.nextLine();
		int flag=0;
		for1:
		for(int i=0;i<sheet.length;i++)
			//遍历第一列
			for(int j=0;j<sheet[i].getRows();j++) {
				String temp=sheet[i].getCell(0,j).getContents();
				if(temp.equals(stu_id)) {
					flag=1;
					//输出该行内容
					for(int k=0;k<sheet[i].getColumns();k++) {
						temp=sheet[i].getCell(k,j).getContents();
						System.out.print(temp+"\t");
					}System.out.println();
					break for1;
				}
			}
		if(flag!=1) {
			System.out.println("未找到该学号信息!");
		}
		wb.close();
	}
	//5.按学号删除
	public void Delete()throws Exception{
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//获取Workbook对象,只读
		Workbook wb=Workbook.getWorkbook(f);
		Sheet[] sheet=wb.getSheets();
		System.out.println("输入需要删除学生的学号:");
		String stu_id=scanf.nextLine();
		int flag=0;
		System.out.println("正在删除id="+stu_id+"的学生:");
		for1:
		for(int i=0;i<sheet.length;i++)
			//遍历第一列
			for(int j=0;j<sheet[i].getRows();j++) {
				String temp=sheet[i].getCell(0,j).getContents();
				if(stu_id.equals(temp)){
					flag=1;
					WritableWorkbook fwb=Workbook.createWorkbook(f, wb);
					WritableSheet fsheet=fwb.getSheet(i);
					fsheet.removeRow(j);
					fwb.write();
					fwb.close();
					System.out.println("删除成功!");
					break for1;
					}
				}
		if(flag!=1) {
			System.out.println("未找到该学号信息!");
		}
		wb.close();
	}
	//6.修改
	public void Alter() throws Exception{
		//输入文件地址
		Scanner scanf=new Scanner(System.in);
		Scanner fstr=new Scanner(System.in);
		String str=scanf.nextLine();
		//新建文件对象
		File f=new File(str);
		//获取Workbook对象,只读
		Workbook wb=Workbook.getWorkbook(f);
		Sheet[] sheet=wb.getSheets();
		System.out.println("输入需要修改学生的学号:");
		String stu_id=scanf.nextLine();
		int flag=0;
		for1:
		for(int i=0;i<sheet.length;i++) {
			//遍历第一列
			for(int j=0;j<sheet[i].getRows();j++) {
				String temp=sheet[i].getCell(0,j).getContents();
				if(temp.equals(stu_id)) {
					flag=1;
					WritableWorkbook fwb=Workbook.createWorkbook(f, wb);
					WritableSheet fsheet=fwb.getSheet(i);
					//输出该行内容
					System.out.println("该行数据为:");
					String[] TempF=new String[fsheet.getColumns()];
					for(int k=0;k<fsheet.getColumns();k++) {
						TempF[k]=fsheet.getCell(k, j).getContents();
						System.out.print(TempF[k]+"\t");}
					while(true) {
					System.out.println();//换行
					System.out.println("你要修改第几列?(1——"+sheet[i].getColumns()+")?:(输入0退出修改)");
					int k=scanf.nextInt()-1;
					if(k==-1) {
						break;
					}System.out.println("输入新的内容:");
					temp=scanf.next();
					System.out.println("确认修改?1是确认");
					int fok=scanf.nextInt();
					if(fok==1) {
					TempF[k]=temp;
					Label lb=new Label(k,j,TempF[k]);
					fsheet.addCell(lb);
					System.out.println("修改成功!");}else {
						System.out.println("取消修改!");
					}
					System.out.println("修改后的数据为:");
					for(k=0;k<TempF.length;k++)
						System.out.print(TempF[k]+"\t");
					System.out.println();//换行
					}fwb.write();
					fwb.close();	
					break for1;		
				}
			}
		}
		if(flag!=1) {
			System.out.println("未找到该学号信息!");
	}
		wb.close();
	}

}

发布了2 篇原创文章 · 获赞 0 · 访问量 33

猜你喜欢

转载自blog.csdn.net/XiaoYunKuaiFei/article/details/103072905
今日推荐