java中读写excel,一般使用poi的比较多,功能强大,效率也高,下载工程代码看下面的地址
工程下载地址:
http://pan.baidu.com/s/1qXG4IWc
POI介绍
是apache的一个开源项目,可以读写excel,word等
POI下载地址
http://poi.apache.org/download.html
网上摘录的代码(感谢:http://blog.csdn.net/zht666/article/details/11598711)
import java.io.File;
import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class Excel {
public static List readExcel(String file){
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
List reList=new ArrayList();
try {
//同时支持Excel 2003、2007
File excelFile = new File(file); //创建文件对象
FileInputStream is = new FileInputStream(excelFile); //文件流
Workbook workbook = WorkbookFactory.create(is); //这种方式 Excel 2003/2007/2010 都是可以处理的
int sheetCount = workbook.getNumberOfSheets(); //Sheet的数量
//遍历每个Sheet
for (int s = 0; s < sheetCount; s++) {
Sheet sheet = workbook.getSheetAt(s);
int rowCount = sheet.getPhysicalNumberOfRows(); //获取总行数
//遍历每一行
for (int r = 0; r < rowCount; r++) {
Row row = sheet.getRow(r);
int cellCount = row.getPhysicalNumberOfCells(); //获取总列数
List rowList=new ArrayList();
//遍历每一列
for (int c = 0; c < cellCount; c++) {
Cell cell = row.getCell(c);
int cellType = cell.getCellType();
String cellValue = null;
switch(cellType) {
case Cell.CELL_TYPE_STRING: //文本
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC: //数字、日期
if(DateUtil.isCellDateFormatted(cell)) {
cellValue = fmt.format(cell.getDateCellValue()); //日期型
}
else {
cellValue = String.valueOf(cell.getNumericCellValue()); //数字
}
break;
case Cell.CELL_TYPE_BOOLEAN: //布尔型
cellValue = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_BLANK: //空白
cellValue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_ERROR: //错误
cellValue = "错误";
break;
case Cell.CELL_TYPE_FORMULA: //公式
cellValue = "错误";
break;
default:
cellValue = "错误";
}
System.out.print(cellValue + " ");
rowList.add(cellValue);
}
//System.out.println();
reList.add(rowList.toArray());
}
}
}
catch (Exception e) {
e.printStackTrace();
}
//System.out.println(reList);
return reList;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List list=readExcel("C:\\Users\\mym\\Desktop\\b.xls");
}