`

创建 读取excel文件 添加/更新内容

    博客分类:
  • java
阅读更多
//创建excel并写入信息

public void create(String savePath) throws IOException, RowsExceededException, WriteException{
		createFolder(savePath);
		String fileName = savePath + "/test.xls";
		File file = new File(fileName);
		WritableWorkbook wwb = Workbook.createWorkbook(file);
		WritableSheet ws = wwb.createSheet("sheet 1",0);
		ws.addCell(new Label(0,0,"apiName"));
		ws.addCell(new Label(1,0,"selectedTimes"));
                wwb.write();
		wwb.close();
	}

 

//添加信息或更新信息
public void addOrUpdate(String savePath) throws BiffException, IOException, WriteException{
		 // 创建只读的 Excel 工作薄的对象
		 File source = new File(savePath + "/test.xls");
		 Workbook rw = Workbook.getWorkbook(source);
		 Sheet sheet = rw.getSheet(0);
		//获取Sheet表中所包含的总列数
		int columns = sheet.getColumns();
		//获取Sheet表中所包含的总行数
		int rows = sheet.getRows();
		 // 创建可写入的 Excel 工作薄对象
		 File dest = new File(savePath + "/test.xls");
		 //将源excel文件复制到目的excel文件
		 WritableWorkbook  wwb = Workbook.createWorkbook(dest, rw);
		 // 读取第一张工作表
		 WritableSheet ws = wwb.getSheet(0);
		 //添加新的内容
		 ws.addCell(new Label(0,rows,"map"));
		 ws.addCell(new Label(1,rows,"2"));
		 /*用来Upadate
		 // 获得第一个单元格对象
		 WritableCell wc = ws.getWritableCell(0, 0);

		 // 判断单元格的类型 , 做出相应的转化
		 if(wc.getType() == CellType.LABEL)
		 {
		   Label l = (Label)wc;
		   l.setString("The value has been modified.");
		 }
		 */
		 // 写入 Excel 对象
		 wwb.write();
		 // 关闭可写入的 Excel 对象
		 wwb.close();
		 // 关闭只读的 Excel 对象
		 rw.close();

		
	}
 

 

//创建文件夹
/*
	 * 创建存储excel文件的文件夹
	 */
	public static void createFolder(String path){
		File folder = new File(path);
		if(!(folder.exists()) && !(folder.isDirectory())){
			boolean createOk = folder.mkdirs();
			if(createOk){
				System.out.println("ok:创建文件夹成功!" );
			}else{
				System.out.println("err:创建文件夹失败! " );   
			}
		}
	}
 
//默认Label写入String型,下面是写入各种类型,如数字等
//1. 添加 Label 对象
 jxl.write.Label labelC = new jxl.write.Label(0, 0, "This is a Label cell");
 ws.addCell(labelC);
 // 添加带有字型 Formatting 的对象
 jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18,
 WritableFont.BOLD, true);
 jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
 jxl.write.Label labelCF = new jxl.write.Label(1, 0, "This is a Label Cell", wcfF);
 ws.addCell(labelCF);
 // 添加带有字体颜色 Formatting 的对象
 jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL, 10,
 WritableFont.NO_BOLD, false,
 UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED);
 jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
 jxl.write.Label labelCFC = new jxl.write.Label(1, 0, "This is a Label Cell", wcfFC);
 ws.addCell(labelCF);
 //2. 添加 Number 对象
 jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926);
 ws.addCell(labelN);
 // 添加带有 formatting 的 Number 对象
 jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
 jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
 jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN);
 ws.addCell(labelNF);
 //3. 添加 Boolean 对象
 jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false);
 ws.addCell(labelB);
 //4. 添加 DateTime 对象
 jxl.write.DateTime labelDT = new jxl.write.DateTime(0, 3, new java.util.Date());
 ws.addCell(labelDT);
 // 添加带有 formatting 的 DateFormat 对象
 jxl.write.DateFormat df = new jxl.write.DateFormat("dd MM yyyy hh:mm:ss");
 jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
 jxl.write.DateTime labelDTF = new jxl.write.DateTime(1, 3, new java.util.Date(),
 wcfDF);
 ws.addCell(labelDTF);
 
//读取excel
	/*new
	 * 获取上传的excel教师信息文件,并进行解析,将各项内容存储到数据库中
	 */
	public List<Teacher> getTeachers(String filePath){
		
		InputStream is = null;
		try {
			is = new FileInputStream(filePath);
		} catch (FileNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try {
			Workbook wb = Workbook.getWorkbook(is);
			Sheet sheet = wb.getSheet(0); // 第几张表格从零开始
			if (sheet != null) {
				// 获取表格总列数
				int rsColumns = sheet.getColumns();
				// 获取表格总行数
				int rsRows = sheet.getRows();
				teacherList = new ArrayList();
				for (int rowNum = 1; rowNum < rsRows; rowNum++) {
					Cell[] cells = sheet.getRow(rowNum);
					for (int i = 0; i < rsColumns && i < cells.length; i++) {// 列数
						System.out.println(getExcelColumnLabel(i)
								+ "============" + cells[i].getContents());
						String columnLabel =  getExcelColumnLabel(i);
						String content = cells[i].getContents();
						if(columnLabel.equals("A")){
							no = content;
						}
						if(columnLabel.equals("B")){
							name = content;
						}
						if(columnLabel.equals("C")){
							password = content;
						}
						if(columnLabel.equals("D")){
							if(content.equals("男")){
								gender = "1";
							}else{
								gender = "2";
							}
						}
						if(columnLabel.equals("E")){
							telpone = content;
						}
						if(columnLabel.equals("F")){
							qq = content;
						}
						if(columnLabel.equals("G")){
							title = content;
						}
						if(columnLabel.equals("H")){
							permission = content;
						}
					}
					Teacher teacher = new Teacher();
					teacher.setNo(no);
					teacher.setName(name);
					teacher.setPassword(password);
					teacher.setGender(gender);
					teacher.setTelpone(telpone);
					teacher.setQq(qq);
					teacher.setTitle(title);
					teacher.setPermission(permission);
					teacherList.add(teacher);
				}
			}
			wb.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return teacherList;
	}
/**
	 * 获取excel对应列的字母
	 * 
	 * @author 
	 * @param num
	 * @return
	 */
	public static String getExcelColumnLabel(int num) {
		String temp = "";
		double i = Math.floor(Math.log(25.0 * (num) / 26.0 + 1) / Math.log(26)) + 1;
		if (i > 1) {
			double sub = num - 26 * (Math.pow(26, i - 1) - 1) / 25;
			for (double j = i; j > 0; j--) {
				temp = temp + (char) (sub / Math.pow(26, j - 1) + 65);
				sub = sub % Math.pow(26, j - 1);
			}
		} else {
			temp = temp + (char) (num + 65);
		}
		return temp;
	}
分享到:
评论

相关推荐

    Linux读取Excel文件批量创建用户并分组

    Linux 系统下读取Excel文件,从而批量创建用户,并为每个用户设置一定格式密码,创建分组。

    读取Excel文件批量创建AD域用户

    此Powershell脚本用于读取EXCEL文件,从而批量添加AD域用户,有详细的错误报告,如缺少名或姓,还有AD模块载入失败等得。

    使用VFP读取EXCEL中的数据示例

    使用VFP读取EXCEL中的数据示例 *!* *****数据导入程序,由“学生基本基本情况表模板.xls”导入数据 *!* ***使用VFP控制EXCEL表,计取中指定列的内容*********** *!* "学生基本基本情况表模板.xls"的数据布局 *!* ...

    新建、写入、读取Excel文件

    1、必须先安装Excel; 2、在工程中导入Excel API: ClassWizar-&gt;Add Class-&gt;选择excel.exe-&gt;选中全部-&gt;确定 自动添加excel.h、excel.cpp到工程 3、Ole初始化: ...5、新建、写入、读取Excel文件:

    Delphi 创建Excel表格文件.rar

    Delphi 读取SQLSERVER数据库内容,并创建Excel表格文件,将内容导出到excel文件中,核心同样是基于createoleobject对象的excel.application方法实现,创建EXECEL对象 ,添加comobj单元,用循环加入记录,将数据表导入...

    java 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    java jxl 通过excel模板创建新文件并将数据导入excel,实现按行、列插入数据

    利用VC++向excel表中保存数据

    通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、...

    delphi操作excel模块,图片,表格,读写删除

    用来读取Excel,Access的控件 读写任何单元值 数字型、字符型、布尔型以及错误型。但是你了解日期和时间型单元吗?在Excel中没有这样的单元。Excel是和Delphi一样的方式来存储日期和时间的,即浮点型。那是什么制造...

    针对Excel表格文件操作的编程实现

    通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、...

    unity读取、写入Excel示例工程文件

    unity读取、写入Excel示例工程文件; 包括详细的备注、完整的创建、修改、添加、删除过程,通俗易懂; 可参考博客:https://blog.csdn.net/Xz616/article/details/128893023

    通用文件筛选工具(批量查询按行存储的文本文件,并导入EXCEL表中)

    本程序将按行读取所选择的文件(或者有换行符的),在读取完文件后,无论是否找到,都会创建和源文件相同类型的文件,即使是.exe或.rar(一般是打不开的),文件名存储为“output”+原文件名。即使没有找到任何相...

    针对Excel表格文件操作的编程实现(源码)

    通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、...

    ASP.NET中上传并读取Excel文件数据示例

    本文通过一个简单的例子,实现读取Excel数据文件。 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件、一个文件控件和一个按钮控件。 代码如下: &lt;INPUT id=”File1″ type=”file” name=”File1″...

    Python读取Excel数据并生成图表过程解析

    通过Python程序读取Excel文件中的数据,生成图表,最好将生成图表生成至浏览器页面,后期数据多之后,也能自动缩放,而不会出现显示不全问题。 三、需求实现代码 # 调用本地echarts.min.js 文件 from pyecharts....

    python批量提取PDF中的表格到Excel文档

    使用python批量读取PDF中的表格数据并...openpyxl :用于操作excel文件 实现步骤: 1、获取PDF文件列表 2、遍历文件列表,读取PDF文档 3、提取PDF中的表格 4、创建Excel工作表 5、向工作表中添加数据 6、保存Excel表格

    针对Excel表格文件操作的编程实现(代码)

    通过本文及配套示例源码你可以更加灵活的控制Excel表格文件,其中包括创建新Excel文件、写入表格数据、读取表格数据(包括对原建Excel文件自已手工添加的行、列数据的准确读取),删除已有Excel表格,对表格中指定行、...

    springMVC poi解析ajax上传excel文件,返回json对象\list数组

    解析通过MutilpartFile导入的Excel并解析里面数据,先判断文件的类型(excel处理有两种此处为两种通用)是.xls/.xlsx,采用Apache的POI的API来操作Excel,读取内容后保存到List中,再将List转Json(使用Linked,增删快...

    TMS FlexCel for VCL & FMX v7.19.1.0

    它允许开发人员在应用程序中创建、读取、修改和导出Excel文件。 TMS FlexCel for VCL具有以下主要特点: 创建和修改Excel文件:开发人员可以使用组件创建新的Excel文件,并在其中添加工作表、单元格、公式、图表、...

    King(Excel游戏转表工具)

    待转的excel文件目录。 data。转换完成的二进制文件目录。 sdk。自动生成读取 data 目录中二进制文件的代码,加载到目标工程中即可使用。目前有C++ 版本,未来会还会有C# 版、LUA版。 bin_reader_Demo。读取data中二...

    C#获取Excel第一列的实例方法

    打开工程-》引用-》右键-》添加引用,导入读取excel文件必要引用,主要是NPOI的一些组件。导入成功,如下图所示。 创建一个简单的可视窗体,窗体上控件包括:打开文件、读取文件按钮,显示读取结果的文本控件等。 ...

Global site tag (gtag.js) - Google Analytics