Jxl实现Excel的导入导出

         由于需要使用JXL,今天特总结如下。

         一、实现Excle的导入

public class ExcelImport {
	
	public static void main(String[] args) {
		try {
				Workbook book = Workbook.getWorkbook(new File("d:/测试.xls"));
				// 获得第一个工作表对象
				Sheet sheet = book.getSheet(0);
				// 得到列数
				int columnum = sheet.getColumns(); 
				// 得到行数
				int rownum = sheet.getRows(); 
				System.out.println(columnum);
				System.out.println(rownum);
				// 循环进行读写
				for(int i = 0 ; i < rownum; i++) 
		         {
		             for(int j = 0 ; j < columnum; j++) {
		                 Cell cell1 = sheet.getCell(j, i);
		                 String result = cell1.getContents();
		                 System.out.print(result);
		                 System.out.print( " \t " );
		             }
		             System.out.println();
		         }
		         book.close(); 
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
      二、实现简单的Excle导出

public class ExcelExport {

	public static void main(String[] args) {
		  try {   
	            //创建文件 
			  	WritableWorkbook book = Workbook.createWorkbook(new File("d:/测试excel.xls"));   
	            //创建第一个表格,命名为"第一章",此处0表示第一个表格  
	            WritableSheet sheet = book.createSheet("第一章", 0);   
	            //创建第一行,第一列,表格内的内容为"测试数据"   
	            Label label = new Label(0, 0, "测试数据");   
	            //将这个单元格加入到第一张表格中   
	            sheet.addCell(label);   
	            //创建第二行,第一列,表格中为数字(数字模式最好使用Number类型的单元格)
	            Number number = new Number(1, 0, 789.123);   
	            //将单元格加入到第一章表格中
	            sheet.addCell(number);   
	            //将所有的数据写入目标Excel中   
	             book.write();   
	            //关闭资源   
	             book.close();   
	         } catch (Exception e) {   
	             e.printStackTrace();   
	         }   
	     }   
	
}

       三、实现带有数据有效性控制以及样式控制的导出

public class ExcleExport2 {
	
	public static void main(String[] args) {
		try {
			//创建一个Excle文件
			WritableWorkbook book = Workbook.createWorkbook(new File("d:/测试.xls"));
			//创建第一个Sheet
			WritableSheet ws = book.createSheet("First", 0);
			
			//设置字体容器(参数属性)
			//第一个:字体 ,WritableFont.TIMES
			//第二个:大小,18
			//第三个: 是否为粗体,WritableFont.BOLD 或WritableFont.NO_BOLD
			//第四个: 判断是否为斜体,选择true时为斜体
			//第五个: 样式,UnderlineStyle.NO_UNDERLINE 没有下划线
			//第六个: 颜色,jxl.format.Colour.RED 字体颜色是红色的 
			WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES, 18, 
					WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);
			
			//创建格式化对象实例
			//可以传递字体参数或者不传递
			WritableCellFormat format = new WritableCellFormat(wf);
			//垂直居中
			format.setVerticalAlignment(VerticalAlignment.CENTRE);
			//水平居中
			format.setAlignment(Alignment.CENTRE); 
			//单元格背景颜色
			format.setBackground(Colour.YELLOW);
			//设置单元格边框
			format.setBorder(Border.TOP, BorderLineStyle.THIN);
			format.setBorder(Border.BOTTOM, BorderLineStyle.THIN);
			format.setBorder(Border.LEFT, BorderLineStyle.THIN);
			format.setBorder(Border.RIGHT, BorderLineStyle.THIN);
			
			//设置第一列的宽度
			ws.setColumnView(0, 15);
			//设置第二列的宽度
			ws.setColumnView(1, 40);
			//设置前三行高度(此处设置高度的单位与设置列的单位是不同的)
			ws.setRowView(0, 350);
			ws.setRowView(1, 350);
			ws.setRowView(2, 350);
			
			//合并单元格(合并第一行第一列,第一行第二列,第二行第一列,第二行第二列)
			ws.mergeCells(0, 0, 1, 1); 
			//创建一个单元格
			Label label = new Label(0, 0, "第一行标题", format);
			ws.addCell(label);
			
			//设置列标题
			Label colums1 = new Label(0,2,"编号");
			ws.addCell(colums1);
			Label colums2 = new Label(1,2,"名称");
			ws.addCell(colums2); 
			
			for(int i = 3 ; i<13 ;i++){
				Label colums_1 = new Label(0,i,"编号"+i);
				Label colums_2 = new Label(1,i,"测试"+i);
				ws.addCell(colums_1);
				ws.addCell(colums_2);
			}
			
			//设置数据有效性
			WritableCellFeatures  format2 = new WritableCellFeatures ();
			List<String> angerlist = new ArrayList<String>();  
			angerlist.add("是");  
			angerlist.add("否");  
			format2.setDataValidationList(angerlist);
			
			//具有数据有效性的单元格
			Label validateLabel = new Label(2, 3, " ", format);
			validateLabel.setCellFeatures(format2);
			ws.addCell(validateLabel);
			
			book.write();
			book.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值