Java 处理Excel

来源:互联网 发布:爱知时计 编辑:程序博客网 时间:2024/06/05 15:51

利用 Java Excel API

代码如下:一个Servlet, 一个用于处理Excel 文件

 

package com.asa.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

import com.asa.util.excel.ExcelUtil;

public class ExcelServlet extends HttpServlet {
     // Initialize global variables
   public void init() throws ServletException {
   }

   // Process the HTTP Get request
   public void doGet(HttpServletRequest request, HttpServletResponse response) throws

ServletException, IOException {
   
   }

   // Process the HTTP Post request
   public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {
           
  
    ServletOutputStream outStream = response.getOutputStream();

    try {
   WritableWorkbook wb = ExcelUtil.getWorkBook(outStream);
      
       response.setHeader("content-disposition","attachment;

filename=1.xls");

       response.setContentType("application/msexcel");        
       wb.write();    
       outStream.flush();
       wb.close();

       outStream.close();
  } catch (WriteException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
    
   }
   protected void dispatch(HttpServletRequest request,HttpServletResponse

response,String page)throws javax.servlet.ServletException, java.io.IOException
    {
       RequestDispatcher dispatcher =getServletContext().getRequestDispatcher(page);
       dispatcher.forward(request, response);
     }
   // Clean up resources
   public void destroy()
   {
   }
}
======================================

/**
 *
 */
package com.asa.util.excel;

/**
 * @author Administrator
 *
 */

import java.io.File;
import java.io.OutputStream;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExcelUtil {

 
 /**
  * Just an example
  * @param file
  * @param sheet which sheet whill be read.
  */
 public static void readExcel(File file, int sheetNum)
 {
  
  if(file == null || !file.exists())
  {
   return;
  } 
  Workbook workbook = null;
  try
  {
   workbook = Workbook.getWorkbook(file);
   if(workbook.getNumberOfSheets() < sheetNum)
   {
    return;
   }    
   //get the specified sheet
   Sheet sheet = workbook.getSheet(sheetNum);   
   int rows = sheet.getRows();
   int columns = sheet.getColumns();
   Cell cell = null;
   String cellContent = null;
   for(int r = 0; r< rows; r++)
   {
    for(int c = 0; c< columns; c++)
    {
     cell = sheet.getCell(c, r);
     cellContent = cell.getContents();
     if(c+1 == columns)
     {
      System.out.println(cellContent);
     }
     else
     {
      System.out.print(cellContent+"  ");
     } 
    } 
   } 
  }
  catch (Exception e) {
   // TODO: handle exception
  } 
  finally
  {
   workbook.close();
  }
 }
 /**
  * 写内容到Excel表中
  * @param file
  */
 public static void writeExcel1(File file)
 {
  
  WritableWorkbook workbook = null;
  try {
   workbook = Workbook.createWorkbook(file);
   //写第一个工作簿
   WritableSheet sheet1 = workbook.createSheet("First Sheet", 0);
   Label label1 = new Label(0, 2, "A label record");
   sheet1.addCell(label1);
   Number number1 = new Number(3, 4, 3.1459);
   sheet1.addCell(number1);
   
   //写第二个工作簿
   WritableSheet sheet2 = workbook.createSheet("Second Sheet", 2);
   Label label2 = new Label(0, 2, "Second Sheet");
   sheet2.addCell(label2);

   Number number2 = new Number(3, 4, 3.1459);
   sheet2.addCell(number2);
   
   workbook.write();
   workbook.close();  
  }
  catch (Exception e) {
   // TODO: handle exception
  }  
  
 }
 /**
  * 写内容到Excel表中
  * @param file
  */
 public static void writeExcel2(File file)
 {
  
  WritableWorkbook workbook = null;
  try {
   workbook = Workbook.createWorkbook(file);
   //写第一个工作簿
   WritableSheet sheet1 = workbook.createSheet("记录", 0);
   Label label1 = new Label(0, 2, "A label record");
   sheet1.addCell(label1);
   Number number1 = new Number(3, 4, 3.1459);
   sheet1.addCell(number1);
   
   //写第二个工作簿
   WritableSheet sheet2 = workbook.createSheet("Second Sheet", 2);
   Label label2 = new Label(0, 2, "Second Sheet");
   sheet2.addCell(label2);

   Number number2 = new Number(3, 4, 3.1459);
   sheet2.addCell(number2);
   
   workbook.write();
   workbook.close();  
  }
  catch (Exception e) {
   // TODO: handle exception
  }
 }
 
 
 
 public static WritableWorkbook getWorkBook(OutputStream outputStream) throws Exception
 {
  WritableWorkbook workbook = null;
  try {
   workbook = Workbook.createWorkbook(outputStream);
   //写第一个工作簿
   WritableSheet sheet1 = workbook.createSheet("记录", 0);
   Label label1 = new Label(0, 2, "A label record");
   sheet1.addCell(label1);
   Number number1 = new Number(3, 4, 3.1459);
   sheet1.addCell(number1);
   
   //写第二个工作簿
   WritableSheet sheet2 = workbook.createSheet("Second Sheet", 2);
   Label label2 = new Label(0, 2, "Second Sheet");
   sheet2.addCell(label2);

   Number number2 = new Number(3, 4, 3.1459);
   sheet2.addCell(number2);   
  }
  catch (Exception e) {
   // TODO: handle exception
  }
  return workbook;
 }
 
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  //ExcelUtil.readExcel(new File("D:/MISC/java misc/excel test.xls"), 0);
  ExcelUtil.writeExcel2(new File("D:/信息记录.xls"));
  System.out.println("ok");
 }
}

原创粉丝点击