J2EE导出excel文件

在管理信息系统( Management Information System ,简称MIS )中经常会遇到将数据库内容或者是,特定的数据库内容导出为 excel 表的功能,毕竟 excel 是办公软件中最常用的表格处理软件,便于分析和增删查改 ,
 
下面是一个导出 excel 实例,可以在很多地方重用,导出的是通讯录的 excel 文件。附件为使用本代码所需jar包。
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
/**
      * @Function Name: export()
      * @Description :
      * @return
      * @Description :
      * @throws Exception
      * @Date Created: Apr 28, 2009 2:32:36 PM
      * @Author : gaochao
      * @Last Modified: , Date Modified:
      */
 
public String export() throws Exception {
       // 根据页面内容生成 excel
       contactList = (List) getSession().getAttribute( "contactlist" );
       int size = contactList .size(); // 得到 list.size()
       OutputStream os = null ;
       boolean b1 = true ;
       try {
           getResponse().reset(); // 清空输出流
           os = getResponse().getOutputStream(); // 取得输出流
           String fileName = " 公共通讯录 .xls" ; // 导出文件名
           getResponse().setHeader(
                  "Content-disposition" ,
                  "attachment; filename="
                         + new String(fileName.getBytes(), "ISO-8859-1" )); // 设定输出文件头
           getResponse().setContentType( "application/msexcel" ); // 定义输出类型
       } catch (IOException ex) { // 捕捉异常
           b1 = false ;
           System. out .println( " 流操作错误 :" + ex.getMessage());
       }
 
       // 生成一个 Exc 的工作空间
       // 创建新的 Excel 工作簿
       WritableWorkbook workbook = Workbook.createWorkbook(os);
       // 生成 Exc Sheet Sheet 名为通讯录导出
       WritableSheet sheet = workbook.createSheet( " 通讯录导出 " , 0);
       // 这里是对 Cell 里面的字体进行格式化
       WritableFont wfc = new WritableFont(WritableFont. ARIAL , 10,
              WritableFont. NO_BOLD , false , UnderlineStyle. NO_UNDERLINE ,
              jxl.format.Colour. BLACK );
       WritableCellFormat format = new WritableCellFormat(wfc);
       WritableCellFormat wcfFC = new jxl.write.WritableCellFormat();
       // 行居中
       wcfFC.setAlignment(Alignment. CENTRE );
       // 列居中
       wcfFC.setVerticalAlignment(VerticalAlignment. CENTRE );
       List<Label> labellist = null ;
       Label labelCk = null ;
 
       labelCk = new Label(0, 0, " 序号 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(1, 0, " 姓名 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(2, 0, " 单位名称 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(3, 0, " 职务 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(4, 0, " 单位电话 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(5, 0, " 手机 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(6, 0, "QQ" , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(7, 0, " 电子邮件 " , wcfFC);
       sheet.addCell(labelCk);
       labelCk = new Label(8, 0, "msn" , wcfFC);
       sheet.addCell(labelCk);
       // 循环将输出内容加到 sheet
       for ( int i = 1; i < size + 1; i++) {
           Contact c = (Contact) contactList .get(i - 1);
           String cId = String.valueOf(c.getId());
           labelCk = new Label(0, i, cId, wcfFC);
           sheet.addCell(labelCk);
           String cName = c.getName();
           labelCk = new Label(1, i, cName, wcfFC);
           sheet.addCell(labelCk);
           String cWork = c.getWork();
           labelCk = new Label(2, i, cWork, wcfFC);
           sheet.addCell(labelCk);
           String cPost = c.getPost();
           labelCk = new Label(3, i, cPost, wcfFC);
           sheet.addCell(labelCk);
           String cTel = c.getWorkTel();
           labelCk = new Label(4, i, cTel, wcfFC);
           sheet.addCell(labelCk);
           String cMobile = c.getMobile();
           labelCk = new Label(5, i, cMobile, wcfFC);
           sheet.addCell(labelCk);
           String cQq = c.getQq();
           labelCk = new Label(6, i, cQq, wcfFC);
           sheet.addCell(labelCk);
           String cEmail = c.getEmail();
           labelCk = new Label(7, i, cEmail, wcfFC);
           sheet.addCell(labelCk);
           String cMsn = c.getMsn();
           labelCk = new Label(8, i, cMsn, wcfFC);
           sheet.addCell(labelCk);
       }
       workbook.write();
       workbook.close();
       return "refresh" ;
    }
这个链接是个别人写的在 jsp 页面上取得要导出的内容,通过 <% %> 嵌入 java 代码实现功能,可以参考着看一下,本人不建议在 jsp 页面中嵌入 java 代码的形式,除非万不得已;如果 jsp 页面过于臃肿,不仅可维护性差,连可读性也极差。以前看过好几年的高手编的 jsp 页面,长且繁杂,看代码时要来来回回把滚动条拖来拖去,不过还是佩服高手哈 ~
http://www.blogjava.net/piliskys/archive/2009/05/31/21095.html
 

你可能感兴趣的:(职场,休闲,导出excel文件)