java讀取2003及2007版的excel

讀取excel2003需要使用apache提供的jxl.jar這個jar包:

     InputStream is = new FileInputStream(fileDir);
     jxl.Workbook rwb = Workbook.getWorkbook(is);

     Sheet rs = rwb.getSheet(0);
     int rsColumns = rs.getColumns();
     int rsRows = rs.getRows();

      if (i < rsRows) {
       for (int j = 0; j < rsColumns; j++) {
        rs.getCell(j, i).getContents();
       }
      }

 

讀取2007需要使用apache得poi包:

import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

        XSSFWorkbook xwb=new XSSFWorkbook(fileDir);
     XSSFSheet sheet=xwb.getSheetAt(0);
     XSSFRow row;
     String cell=null;
     int m=0;
     int max=0;
     for(int i=sheet.getFirstRowNum();i<sheet.getPhysicalNumberOfRows();i++)
     {
      m=sheet.getRow(i).getPhysicalNumberOfCells();
      if (m>=max) {
       max=m;
      }
      else {

      }
     }

      for(int i=sheet.getFirstRowNum();i<sheet.getPhysicalNumberOfRows();i++)
      {
       Element root_2 = new Element("columns");
       root.appendChild(root_2);
       row=sheet.getRow(i);
       for(int j=0;j<max+1;j++)
       {
        try {
         cell=row.getCell(j).toString();

        } catch (Exception e) {
         cell=null;
        }
        Element root_3 = new Element("column");
        root_3.appendChild(cell);
        root_2.appendChild(root_3);

       }
      }
      Document document = new Document(root);
      return document.toXML();

 

JExcelAPI讀寫excel文件的例子。支持excel2003文件格式   轉載

http://blog.csdn.net/wonder4/archive/2006/07/04/874541.aspx

 

 

import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import java.awt.Color;

public class TestExcel {
 public static void writeExcel(File f) throws Exception {
  jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(f);
  jxl.write.WritableSheet ws = wwb.createSheet("TestSheet1", 0);
  jxl.write.Label labelC = new jxl.write.Label(0, 0, "我愛中國");
  ws.addCell(labelC);
  jxl.write.WritableFont wfc = new jxl.write.WritableFont(
    WritableFont.ARIAL, 20, WritableFont.BOLD, false,
    UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN);
  jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
    wfc);
  wcfFC.setBackground(jxl.format.Colour.RED);
  labelC = new jxl.write.Label(6, 0, "中國愛我a", wcfFC);
  ws.addCell(labelC);
  // 寫入Exel工作表
  wwb.write();
  // 關閉Excel工作薄對象
  wwb.close();
 }
 public static void readExcel(File os) throws Exception {
  Workbook wb = Workbook.getWorkbook(os);
  Sheet s = wb.getSheet("Sheet1");
  Cell c = s.getCell(0,0);
  System.out.println(c.getContents());
 }

 // 最好寫一個這樣的main方法來測試一下你的這個class是否寫好了。
 public static void main(String[] args) throws Exception {
  File f = new File("c://kk1.xls");
//  f.createNewFile();
//  writeExcel(f);
  readExcel(f);
 }

 

 

 

 

List list = new ArrayList();
  try {
   Workbook rwb = null;
   Cell cell = null;

   // 創建輸入流
   InputStream stream = new FileInputStream(excelFileName);

   // 獲取Excel文件對象
   rwb = Workbook.getWorkbook(stream);

   // 獲取文件的指定工作表 默認的第一個
   Sheet sheet = rwb.getSheet(0);

   // 行數(表頭的目錄不需要,從1開始)
   for (int i = 1; i < sheet.getRows(); i++) {

    // 創建一個數組 用來存儲每一列的值
    String[] str = new String[sheet.getColumns()];

    // 列數
    for (int j = 0; j < sheet.getColumns(); j++) {

     // 獲取第i行,第j列的值
     cell = sheet.getCell(j, i);
     str[j] = cell.getContents();

    }
    // 把剛獲取的列存入list
    list.add(str);
   }

   // 返回值集合
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (BiffException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章