使用jxl.jar生成excel


使用jxl.jar生成excel表格,例子中有合并单元格,指定标题样式,字体等信息;

 

package com.email.jav;

import java.io.File;
import java.io.IOException;
import java.net.URL;

import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableHyperlink;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class TestExl {

public static void main(String args[]) throws IOException,
    RowsExceededException, WriteException {

   WritableWorkbook book = Workbook.createWorkbook(new File("f://aa.xls")); // 第一步

   /**
    * 定义与设置Sheet
    */
   WritableSheet sheet = book.createSheet("sheet", 0); // 创建Sheet
   sheet.setColumnView(0, 30); // 设置列的宽度
   sheet.setColumnView(1, 30); // 设置列的宽度
   sheet.setColumnView(2, 30); // 设置列的宽度
   sheet.setRowView(6, 1000); // 设置行的高度
   sheet.setRowView(4, 1000); // 设置行的高度
   sheet.setRowView(5, 1000); // 设置行的高度

   /**
    * 定义单元格样式
    */
   WritableFont wf = new WritableFont(WritableFont.ARIAL, 15,
     WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
     jxl.format.Colour.CORAL); // 定义格式 字体 下划线 斜体 粗体 颜色
   WritableCellFormat wcf = new WritableCellFormat(wf); // 单元格定义
   wcf.setBackground(jxl.format.Colour.BLACK); // 设置单元格的背景颜色
   wcf.setAlignment(jxl.format.Alignment.CENTRE); // 设置对齐方式

   /**
    * 使用样式的单元格
    */
   sheet.addCell(new Label(0, 0, "邮箱asasasasa", wcf)); // 普通的带有定义格式的单元格
   sheet.addCell(new Label(1, 0, "动作asasasasa", wcf));
   sheet.addCell(new Label(2, 0, "时间asasasasa", wcf));

   sheet.addCell(new Label(0, 1, "qhcgx@sina.com"));
   sheet.addCell(new Label(1, 1, "action"));
   sheet.addCell(new Label(2, 1, "time"));

   /**
    * excel合并单元格
    */
   sheet.addCell(new Label(4, 0, "合并单元格", wcf)); // 合并单元格

   sheet.addCell(new Label(4, 1, "测试1"));
   sheet.addCell(new Label(5, 1, "测试2"));
   sheet.addCell(new Label(6, 1, "测试3"));

   sheet.mergeCells(4, 0, 6, 0); // 合并单元格

   /**
    * excel图片
    */
   sheet.addCell(new Label(0, 3, "展示图片 jxl只支持png格式的", wcf)); // 展示图片标题
   sheet.mergeCells(0, 3, 3, 3); // 合并图片标题单元格

   File file = new File("f://1.png"); // 获得图片
   WritableImage image = new WritableImage(0, 4, 3, 3, file); // 设置图片显示位置
                  // 4,4代表图片的高和宽占4个单元格

   sheet.addImage(image); // 加载图片

   /**
    * excel链接
    */
   sheet.addCell(new Label(0, 8, "excel链接测试", wcf)); // 链接标题
   sheet.mergeCells(0, 8, 2, 8);
   WritableHyperlink link = new WritableHyperlink(0, 9, new URL(
     "http://www.google.com"));
   link.setDescription("链接使用 链接到Google");
   sheet.mergeCells(0, 9, 1, 9);
   sheet.addHyperlink(link);

   book.write();
   book.close();
}

}

 简单的excel导出

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();
		}
	}

}

实现EXCEL的导入

 

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();
		}
	}

}

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值