java中Excel操作的简单封装

来源:互联网 发布:ipad软件连不上网络 编辑:程序博客网 时间:2024/05/18 08:45

导入封装:

package com.test.excel;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
 * 对Excel读进行简短的封装
 * @author 陈双
 *
 */
public class ImportExcel {
  /**
   * 导入Excel
   * @param file excel文件
   * @return 返回excel每一行记录,以Object的形式保存在List中
   * @throws BiffException
   * @throws IOException
   */
     public static List readExcel(File file) throws BiffException, IOException
     {
      List list=new ArrayList();
      Workbook book=Workbook.getWorkbook(file);
      for(int index=0;index<book.getNumberOfSheets();index++)
      {
       Sheet sheet=book.getSheet(index);
       Cell[] row;
       for(int i=0;i<sheet.getRows();i++)
       {
        row=sheet.getRow(i);
        Object[] data=new Object[row.length];
        for(int j=0;j<row.length;j++)
        {
         data[j]=row[j].getContents();
        }
        list.add(data);
       }
      }
      return list;
     }
}


导出封装:

package com.test.excel;

import java.io.File;
import java.io.IOException;
import java.util.List;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
 * 对Excel的写进行简短的封装
 * @author 陈双
 *
 */
public class ExportExcel {
 /**
  * 写入Excel文件
  * @param file excel文件
  * @param list 要写入的数据以Object的形式放入List中
  * @param sheetName 工作表的名称
  * @throws IOException
  * @throws WriteException
  */
   public static void writeExcel(File file,List list,String sheetName) throws IOException, WriteException
   {
    WritableWorkbook book=Workbook.createWorkbook(file);
    WritableSheet sheet=book.createSheet(sheetName, 0);
    WritableFont wf=new WritableFont(WritableFont.ARIAL,8,WritableFont.NO_BOLD,false);
    WritableCellFormat wcf=new WritableCellFormat(wf);
    wcf.setAlignment(Alignment.CENTRE);
    for(int i=0;i<list.size();i++)
    {
     Object[] row=(Object[])list.get(i);
     for(int j=0;j<row.length;j++)
     {
      Label label=new Label(j,i,row[j].toString(),wcf);
      sheet.addCell(label);
     }
    }
    book.write();
    book.close();
   }
}

测试:

package com.test.excel;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Test {
 /**
  * 对excel的读和写进行测试
  * @param args
  */
    public static void main(String[] args)
    {
     //new Test().testWrite();
     new Test().testRead();

    }
    public void testWrite()
    {
     try
     {
      File file=new File("D:\测试.xls");
      List list=new ArrayList();
      list.add(new Object[]{"编号","名称","密码","电话","邮件箱"});
      list.add(new Object[]{"1","张三","123456","13012440133","zhangsan@sina.com"});
      list.add(new Object[]{"2","李四","123456","13012440133","lisi@sina.com"});
      list.add(new Object[]{"3","王五","123456","13012440133","wangwu@sina.com"});
      list.add(new Object[]{"4","李斯","123456","13012440133","lisi@sina.com"});
      list.add(new Object[]{"5","晓明","123456","13012440133","xiaoming@sina.com"});
      ExportExcel.writeExcel(file, list, "员工信息");
     }catch(Exception   e)    
     {    
      e.printStackTrace();
     } 
    }
    public void testRead()
    {
     try
     {
      File file=new File("D:\测试.xls");
      List list=ImportExcel.readExcel(file);
      for(int i=0;i<list.size();i++)
      {
       Object[] row=(Object[])list.get(i);
       for(int j=0;j<row.length;j++)
       {
        System.out.print(row[j]+"t");
       }
       System.out.println();
      }
     
     }catch(Exception   e)    
     {    
      e.printStackTrace();
     } 
    }
}

原创粉丝点击