现在的位置: 首页 > 综合 > 正文

jsp to Excel (jxl)

2013年09月27日 ⁄ 综合 ⁄ 共 5544字 ⁄ 字号 评论关闭

import javax.servlet.http.*;
import java.util.*;
import java.lang.Integer;
import java.io.File;
import jxl.Workbook;
import jxl.write.WritableWorkbook;
import jxl.write.WritableSheet;
import jxl.write.WritableFont;
import jxl.write.WritableCellFormat;
import jxl.write.Label;
import jxl.format.Alignment;
import jxl.format.VerticalAlignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;

public class prv extends HttpServlet {
//Initialize global variables
//Process the HTTP Get request
public static void main(String args[])
{
 boolean booleanbExportSucc=false;
 String filesavename="";
 {//处理出文件名
  Calendar now = Calendar.getInstance();
  String year = now.get(Calendar.YEAR) + "";
  int iMonth = now.get(Calendar.MONTH) + 1 ;
  String month = iMonth + "";
  String day = now.get(Calendar.DATE) + "";
  String hour = now.get(Calendar.HOUR_OF_DAY) + "";
  String minute = now.get(Calendar.MINUTE) + "";
  String second = now.get(Calendar.SECOND) + "";
  filesavename = year + month + day + hour + minute + second;
 }
  File filepath = new File("d:/Exceltest2");
  if (filepath.exists()){
  System.out.println("路径已经存在!<br/>");
  }else {
  filepath.mkdir();
  }
  String sCurrPath="d:/Exceltest2/"+filesavename+".xls";
  //String myfilepath = request.getRealPath(sCurrPath);
  File file = new File(sCurrPath);
  try{
  file.createNewFile();
  //获取文件的URL地址
  }
  catch(Exception e)
  {
   System.out.println("创建文件失败!");
  }
  //以下开始输出到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.ALL, BorderLineStyle.THICK); //线条
  wcf_merge.setVerticalAlignment(VerticalAlignment.CENTRE ); //文字垂直对齐
  wcf_merge.setAlignment(Alignment.CENTRE); //文字水平对齐
  wcf_merge.setWrap(false); //文字是否换行
  
  /**************单元格格式设置完成*******************/
  
  /*****************以下是定单内容**********************/
  //第0列为项目
  //第1列
  Vector print=new Vector();
  String[][] str={{"11111111111111","22222222222222222222"},{"33333333333333333333","444444444444444444"}};
  print.add( 0,"5555");
  print.add( 1,"XXXX数据");
  print.add( 2,"77777");
  print.add( 3,"12");
  String[][] temp=str;
  String vTitle=(String)print.get(1);
  int chang=Integer.parseInt("22");
  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,0);
  sheet.addCell(new Label(0,0,vTitle,wcf_center));
  
  
  //sheet.mergeCells(0,1,1,2);地市17

  sheet.addCell(new Label(0,1,"AA",wcf_left));
  sheet.addCell(new Label(1,1,"VV",wcf_left));
  sheet.addCell(new Label(2,1,"CC",wcf_left));
  sheet.addCell(new Label(3,1,"asd",wcf_left));
  sheet.addCell(new Label(4,1,"asd",wcf_left));
  sheet.addCell(new Label(5,1,"asd",wcf_left));
  sheet.addCell(new Label(6,1,"qwd",wcf_left));
  sheet.addCell(new Label(7,1,"qwd",wcf_left));
  sheet.addCell(new Label(8,1,"qwd",wcf_left));
  sheet.addCell(new Label(9,1,"qwd",wcf_left));
  sheet.addCell(new Label(10,1,"qwd",wcf_left));
  sheet.addCell(new Label(11,1,"qwd",wcf_left));
  sheet.addCell(new Label(12,1,"43",wcf_left));
  sheet.addCell(new Label(13,1,"egg",wcf_left));
  sheet.addCell(new Label(14,1,"hn",wcf_left));
  sheet.addCell(new Label(15,1,"rth",wcf_left));
  sheet.addCell(new Label(16,1,"sth",wcf_left));
  sheet.addCell(new Label(17,1,"srth",wcf_left));
  sheet.addCell(new Label(18,1,"srth",wcf_left));
  sheet.addCell(new Label(19,1,"srth",wcf_left));
  sheet.addCell(new Label(20,1,"srth",wcf_left));
  sheet.addCell(new Label(21,1,"srth",wcf_left));
  sheet.addCell(new Label(22,1,"srth",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();
  booleanbExportSucc = true;//为用户提供下载链接
  
  
  
  
  
  }catch(Exception e){
  e.printStackTrace();
  System.out.println("在输出到EXCEL的过程中出现错误,错误原因:"+e.toString());
  }
  

}
}

抱歉!评论已关闭.