使用POI操作EXCEL工作簿(三)

POIExcelServlet     处理Excel文件

java 代码
  1. package it;   
  2.   
  3. import java.io.*;   
  4. import java.text.DecimalFormat;   
  5. import javax.servlet.*;   
  6. import javax.servlet.http.*;   
  7. import org.apache.poi.hssf.usermodel.*;   
  8. import java.util.Enumeration;   
  9.   
  10. public class POIExcelServlet extends HttpServlet {   
  11.  private String poiexcelPath = "";   
  12.   
  13.  public void destroy() {   
  14.   super.destroy(); // Just puts "destroy" string in log   
  15.   // Put your code here   
  16.  }   
  17.   
  18.  public void doGet(HttpServletRequest request, HttpServletResponse response)   
  19.    throws ServletException, IOException {   
  20.   createExcel(this.poiexcelPath,request);   
  21.   readExcel(this.poiexcelPath,response);   
  22.  }   
  23.   
  24.     
  25.  public void doPost(HttpServletRequest request, HttpServletResponse response)   
  26.    throws ServletException, IOException {   
  27.   doGet(request,response);   
  28.  }   
  29.     
  30.   
  31.  public void init(ServletConfig config) throws ServletException {   
  32.   super.init(config);   
  33.      
  34.   poiexcelPath = "e:\\jsp\\telx.xls";  //给定保存路径 
  35.  }   
  36.     
  37.  public void createExcel(String filename,HttpServletRequest request){   
  38.   String outputFile = filename;   
  39.   int i = 1;   
  40.   String name;   
  41.   String value;   
  42.      
  43.   try{   
  44.    HSSFWorkbook workbook = new HSSFWorkbook();    //建立EXCEL关联文件
  45.       
  46.    HSSFSheet sheet = workbook.createSheet("New Sheet");    //新建SHEET对象
  47.    HSSFRow row = sheet.createRow((short)0);     //新建ROW对象
  48.       
  49.    HSSFCell cell = row.createCell((short)0);    //新建CELL对象
  50.    cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置CELL属性(字符)  
  51.    cell.setCellValue("Parameter Name");         //给定值
  52.       
  53.    cell = row.createCell((short)1);   
  54.    cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  55.    cell.setCellValue("Parameter Value");   
  56.       
  57.    Enumeration enum1 = request.getParameterNames();   
  58.       
  59.    System.out.println(enum1.toString());   
  60.    while(enum1.hasMoreElements()){   
  61.     row = sheet.createRow((short)i);   
  62.     name = (String)enum1.nextElement();   
  63.     value = request.getParameter(name);   
  64.        
  65.     cell = row.createCell((short)0);   
  66.     cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  67.     cell.setCellValue(name);   
  68.        
  69.     cell= row.createCell((short)1);   
  70.     cell.setCellType(HSSFCell.CELL_TYPE_STRING);   
  71.     cell.setCellValue(value);   
  72.     i++;   
  73.    }   
  74.       
  75.    FileOutputStream fos = new FileOutputStream(outputFile);   
  76.       
  77.    workbook.write(fos);    //通过流生成EXCEL文件
  78.    fos.flush();   
  79.    fos.close();   
  80.    System.out.println("文件生成…");   
  81.   }catch(Exception e){   
  82.    System.out.println("error at createExcel"+e);   
  83.   }   
  84.      
  85.  }   
  86.     
  87.     
  88.  public void readExcel(String filename,HttpServletResponse response) throws IOException{   
  89.   DecimalFormat df = new DecimalFormat("#");    //建立格式化数字对象(#)单个任何数字
  90.   String fileToBeRead = filename;   
  91.   PrintWriter out = response.getWriter();   
  92.      
  93.   try{   
  94.    String strCell = null;   
  95.    HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));   
  96.    //给定构造函数为读入  
  97.    for(int numSheets = 0;numSheets
  98.     if(null!=workbook.getSheetAt(numSheets)){   
  99.      HSSFSheet aSheet = workbook.getSheetAt(numSheets);   
  100.      for(int rowNumOfSheet = 0;rowNumOfSheet<=aSheet.getLastRowNum();rowNumOfSheet++){   
  101.       if(null!=aSheet.getRow(rowNumOfSheet)){   
  102.        HSSFRow aRow =aSheet.getRow(rowNumOfSheet);   
  103.        for(short cellNumOfRow = 0;cellNumOfRow<=aRow.getLastCellNum();cellNumOfRow++){   
  104.         if(null!=aRow.getCell(cellNumOfRow)){   
  105.          HSSFCell aCell = aRow.getCell(cellNumOfRow);   
  106.          int cellType = aCell.getCellType();   
  107.          switch(cellType){   
  108.          case 0:   
  109.           strCell = df.format(aCell.getNumericCellValue());   
  110.           out.println(strCell+"     ");   
  111.           break;   
  112.          case 1:   
  113.           strCell = aCell.getStringCellValue();   
  114.           out.println(strCell+"     ");   
  115.           break;   
  116.          default:   
  117.           out.println("格式错误");   
  118.          }   
  119.         }   
  120.        }   
  121.        out.print("
    "
    );   
  122.       }   
  123.      }   
  124.     }   
  125.    }   
  126.   }catch(Exception e){   
  127.    System.out.println("error at readExcel"+e);   
  128.   }   
  129.  }   
  130. }   
  131.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值