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

java读取2003及2007版的excel

2012-04-10 15:43 411 查看
读取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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: