JAVA导EXCEL

来源:互联网 发布:网络爬虫基础 编辑:程序博客网 时间:2024/06/05 11:45

首先在标签库中加一个excel的包  
  在jsp中写下面的链接:  
  <p   align=right><input   name="Submit"   type="button"   class="queryBox"   value="   打印报表   "   onclick="javasript:window.open('printerservlet','report','toolbar=no,status=no,scollbars,resizable,top=1,left=1,width=800,height=600');">   </p>  
   
  在写一个'printerservlet'的servlet就ok了,如下:  
   
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   java.io.*;  
  import   java.util.*;  
  import   java.util.Date;  
  import   java.lang.Integer;  
  import   java.io.File;  
  import   jxl.Workbook;  
  import   jxl.SheetSettings;  
  import   jxl.WorkbookSettings;  
  import   jxl.Range;  
  import   jxl.write.WritableWorkbook;  
  import   jxl.write.WritableSheet;  
  import   jxl.write.WritableFont;  
  import   jxl.write.WritableCellFormat;  
  import   jxl.write.NumberFormats;  
  import   jxl.write.DateFormats;  
  import   jxl.write.Label;  
  import   jxl.write.Number;  
  import   jxl.write.DateTime;  
  import   jxl.write.NumberFormat;  
  import   jxl.write.DateFormat;  
  import   jxl.write.WriteException;  
  import   jxl.write.WritableHyperlink;  
  import   jxl.write.Boolean;  
  import   jxl.write.Formula;  
  import   jxl.format.Alignment;  
  import   jxl.format.VerticalAlignment;  
  import   jxl.format.Border;  
  import   jxl.format.BorderLineStyle;  
  import   jxl.format.Colour;  
  import   jxl.format.UnderlineStyle;  
  import   jxl.format.ScriptStyle;  
  import   jxl.format.Orientation;  
  import   jxl.format.PageOrientation;  
  import   jxl.format.PaperSize;  
  import   javax.servlet.*;  
  import   javax.servlet.http.*;  
  import   javax.servlet.jsp.*;  
   
   
   
  public   class   PrinterServlet   extends   HttpServlet   {  
      private   static   final   String   CONTENT_TYPE   =   "text/html;   charset=GBK";  
      //Initialize   global   variables  
      public   void   init()   throws   ServletException   {  
      }  
      //Process   the   HTTP   Get   request  
      public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)   throws   ServletException,   IOException   {  
                  response.setContentType(CONTENT_TYPE);  
                  PrintWriter   out   =   response.getWriter();  
   
                  HttpSession   session=request.getSession(true);  
                  int   USERID=Integer.parseInt(session.getAttribute("USERID").toString());  
                  boolean bExportSucc   =   false;  
                  String   sErrorStr="";  
   
                  String   sHead="./files/";  
                  String   sFileName=USERID+"Test.xls";  
                  String   sCurrPath=request.getRealPath("./files/");  
                    File   filepath   =   new   File(sCurrPath);  
                    if   (filepath.exists()){  
                        out.println("路径已经存在!<br>");  
                    }else   {  
                        filepath.mkdir();  
                    }  
                  sCurrPath=sCurrPath+"/"+sFileName;  
                //String   myfilepath   =   request.getRealPath(sCurrPath);  
                  File   file   =   new   File(sCurrPath);  
                  file.createNewFile();  
                  //获取文件的URL地址  
                  String   sUrlPath=sHead+sFileName;  
   
                  //以下开始输出到EXCEL  
                  try   {  
                                  /************创建工作簿*************/  
                                  WritableWorkbook   workbook   =   Workbook.createWorkbook(new   File(sCurrPath));  
   
   
                                  /************创建工作表*************/  
   
                                  WritableSheet   sheet   =   workbook.createSheet("报表系统",   0);  
                                  //sheet.setPageSetup(5,true);  
   
   
                                  /************设置纵横打印(默认为纵打)、打印纸******************/  
                                  //sheet.setPageSetup(PageOrientation.LANDSCAPE.LANDSCAPE,0,0);  
                                  //sheet.setPageSetup(PageOrientation.LANDSCAPE.LANDSCAPE,PaperSize.A4,0,0);  
                                  //sheet.addRowPageBreak(12);  
                                  jxl.SheetSettings   sheetset=sheet.getSettings();  
                                  sheetset.setProtected(false);  
   
                                  //sheet.setColumnView(0,5);  
                                  //sheet.setColumnView(1,12);  
   
                                  /**************设置单元格字体***************/  
                                  WritableFont   NormalFont   =   new   WritableFont(WritableFont.ARIAL,10);  
                                  WritableFont   BoldFont   =   new   WritableFont(WritableFont.ARIAL,14,WritableFont.BOLD);  
   
   
                                  /**************以下设置几种格式的单元格*************/  
                                  //用于正文居左  
                                  WritableCellFormat   wcf_left   =   new   WritableCellFormat(NormalFont);  
                                  wcf_left.setBorder(Border.NONE,   BorderLineStyle.THIN);   //线条  
                                  wcf_left.setVerticalAlignment(VerticalAlignment.TOP);     //文字垂直对齐  
                                  wcf_left.setAlignment(Alignment.LEFT);                                   //文字水平对齐  
                                  wcf_left.setWrap(false);                                                                 //文字是否换行  
   
                                  //用于正文居右  
                                  WritableCellFormat   wcf_right   =   new   WritableCellFormat(NormalFont);  
                                  wcf_right.setBorder(Border.ALL,   BorderLineStyle.THIN);       //线条  
                                  wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE);   //文字垂直对齐  
                                  wcf_right.setAlignment(Alignment.RIGHT);                                     //文字水平对齐  
                                  wcf_right.setWrap(false);                                                                   //文字是否换行  
   
                                  //用于正文居中  
                                    WritableCellFormat   wcf_center   =   new   WritableCellFormat(NormalFont);  
                                    wcf_center.setBorder(Border.ALL,   BorderLineStyle.THIN);       //线条  
                                    wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);   //文字垂直对齐  
                                    wcf_center.setAlignment(Alignment.CENTRE);                                   //文字水平对齐  
                                    wcf_center.setWrap(false);                                                                   //文字是否换行  
   
                                  //用于跨行  
                                  WritableCellFormat   wcf_merge   =   new   WritableCellFormat(BoldFont);  
                                  wcf_merge.setBorder(Border.NONE,   BorderLineStyle.THICK);   //线条  
                                  wcf_merge.setVerticalAlignment(VerticalAlignment.TOP);     //文字垂直对齐  
                                  wcf_merge.setAlignment(Alignment.CENTRE);                                   //文字水平对齐  
                                  wcf_merge.setWrap(true);                                                                 //文字是否换行  
   
                                  /**************单元格格式设置完成*******************/  
                                  //在excel中加图片  
                                  WritableSheet   imgsheet   =   workbook.createSheet("image",   4);  
                                  String   pathname   =   "E://java//lib//jexcel2.6//resources//wealdanddownland.png";  
                                  WritableImage   img   =   new   WritableImage(2,   2,   2.5,   2.5,   new   File(pathname));  

/*****************以下是定单内容**********************/   
//第0列为项目   
     //第1列   
    
            Vector   print=(Vector)session.getAttribute("aa");   
             String[][]   temp=(String[][])print.get(0);   
              String   vBT=(String)print.get(1);   
              String   vXM=(String)print.get(2);   
              int   chang=Integer.parseInt(print.get(3).toString());   
             java.util.Date   systempDate   =   new   java.util.Date();   
          java.text.SimpleDateFormat   format   =   new   java.text.SimpleDateFormat("yyyy-MM-dd   hh:mm:ss");  
                                  String   sysDate   =   format.format(systempDate);  
                                  sheet.mergeCells(0,0,chang,2);  
                                  sheet.addCell(new   Label(0,0,vBT,wcf_merge));  
                                  sheet.mergeCells(0,3,chang,3);  
                                  sheet.addCell(new   Label(0,3,"打印操作员:"+vXM,wcf_left));  
                                  sheet.mergeCells(0,4,chang,4);  
                                  sheet.addCell(new   Label(0,4,"打印时 间:"+sysDate,wcf_left));  
                                  for(int   m=0;m<temp.length;m++)  
                                  {  
                                      for(int   n=0;n<temp[m].length;n++)  
                                      {  
                                              sheet.addCell(new   Label(n,m+6,temp[m][n].replaceAll("/"","").trim(),wcf_center));   //第0行  
                                      }  
                                  }  
   
                                  /************以上所写的内容都是写在缓存中的,下一句将缓存的内容写到文件中*********/  
                                  workbook.write();  
                                  /***********关闭文件**************/  
                                  workbook.close();  
                                  bExportSucc   =   true;  
                    }catch(Exception   e){  
                                  e.printStackTrace();  
                                  sErrorStr   =   e.toString();  
                                  System.out.println("在输出到EXCEL的过程中出现错误,错误原因:"+e.toString());  
                    }  
   
   
                    out.println("<html>");  
                    out.println("<head>");  
                    out.println("<title>EXCEL报表输出</title>");  
                    out.println("</head><body><br>");  
                    out.println("<div   align=center>");  
                    if(bExportSucc){  
                                out.println("<meta   http-equiv=refresh   content=/"0;url="+sUrlPath+"/">");  
                    }else{  
                                out.println("<font   color=red>在输出到EXCEL文件的过程中发生错误,错误原因:"+sErrorStr+"</font>");  
                    }  
                    out.println("</div></body></html>");  
   
      }  
      //Clean   up   resources  
      public   void   destroy()   {  
      }  
  }

原创粉丝点击