您的位置:首页 > 编程语言 > Java开发

简单用Java Excel 创建和读取 Excel文件

2007-12-19 09:32 435 查看
package fxp.util.excel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

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

public class ExcelOperate
{
 /**
  * 创建Excel,
  * @param fileName 文件名.同名将被覆盖
  * @param sheetName 第一页名字
  * @param title 数组,代表标题
  * @param content 二维数组,代表每一格内容
  * /
 public static void createExcel(String fileName,String sheetName,String[] title,String[][] content)throws Exception
 {
  boolean flag =false;   
        WritableWorkbook book = null;//可写的表
     WritableSheet ws = null;//表中一页                     
        File file = new File(fileName);       
        if(file.exists())   //如果文件存在,创建临时文件      
        {
         file=new File("xsl_file_temp.xls");
         flag=true;
        }
        book = Workbook.createWorkbook(file);//根据文件名创建表
  ws = book.createSheet(sheetName, 0);//根据页名创建一页,0代表第一页
        for(int i=0;i<title.length;i++)//填加标题行
        {           
   Label label = new Label(i, 0, title[i]);//Label代表一格.第一个参数代表纵列数,第二个参数代表横行数,第三个代表内容
   ws.addCell(label);   
        }
        for(int i=0;i<content.length;i++)//填充单元格内容
        {                    
         for(int j=0;j<content[i].length;j++)
            {           
          Label label = new Label(j, i+1, content[i][j]);
          ws.addCell(label);
            }
        }
        book.write();      
  book.close();
  if(flag)//覆盖同名文件
  {
   File oldFile=new File(fileName);
   replaceFile(oldFile,file);
   file.delete();
  }
 }
 /**
  * 用新文件替换旧文件
  * @param oldFile 将被替换
  * @param newFile 新文件
  * @throws Exception
  */
 public static void replaceFile(File oldFile,File newFile)throws Exception
 {
  FileInputStream fis=null;  
  FileOutputStream fos=null;
  try
  {
   fis=new FileInputStream(newFile);
   fos=new FileOutputStream(oldFile);  
        byte[] b=new byte[fis.available()];       
        fis.read(b);
        fos.write(b);
  }
  finally
  {
        fis.close();
        fos.close();
  }
 }
 public static void readExcelSheet(Sheet sheet)
 {
  for(int i=0;i<sheet.getRows();i++)
  {   
   for(int j=0;j<sheet.getColumns();j++)
   {
    Cell cell=sheet.getCell(j, i);//j列,i行
    System.out.print(cell.getContents()+" | ");    
   }
   System.out.println("");
  }
 }
 public static void readExcel(String fileName)throws Exception
 {
  File file=new File(fileName);
  Workbook book=Workbook.getWorkbook(file);
  Sheet[] sheets=book.getSheets();
  for(int i=0;i<sheets.length;i++)
  {
   readExcelSheet(sheets[i]);
  }  
  book.close();
 }
 public static void main(String args[])throws Exception
 {  
  String file="c://temp//test.xls";
  String sheetName="我的第一页";
  String[] title=new String[]{"你","我","他"};  
  String[][] content=new String[3][3];
  for(int i=0;i<content.length;i++)
  {   
   for(int j=0;j<content[i].length;j++)
   {
    content[i][j]="测试["+i+"]"+"["+j+"]";
   }
  }
  createExcel(file,sheetName,title,content);
  readExcel(file);
 }
 
}
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息