java--poi 读取Excel 兼容2003/2007

一、准备需要的jar包

       1.poi-ooxml-3.9.jar
       2.poi-3.9.jar
       3.poi-contrib-3.9-.jar
       4.poi-ooxml-schemas-3.9.jar
       5.poi-scratchpad-3.9.jar
       6.xmlbeans-2.3.0.jar
       7.openxml4j-bin-beta.jar
       8.geronimo-stax-api_1.0_spec-1.0.jar

下载地址:http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.9-20121203.tar.gz.。

二、例子

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
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 ExcalImp {
	
	private static String filePath1 = "D:\\11.xlsx";
	private static String filePath2 = "D:\\11.xlsx";
	private Workbook wb = null;// book [includes sheet]
	private Sheet sheet = null;
	private Row row = null;
	private int sheetNum = 0; // 第X个工作表
	private int rowNum = 0;
	private FileInputStream fis = null;
	private File file = null;
	 public ExcalImp() {
	 }
	 public ExcalImp(File file) {
	  this.file = file;
	 }
	 public void setRowNum(int rowNum) {
	  this.rowNum = rowNum;
	 }
	 public void setSheetNum(int sheetNum) {
	  this.sheetNum = sheetNum;
	 }
	 public void setFile(File file) {
	  this.file = file;
	 }

	 /**
	  * 读取excel文件获得HSSFWorkbook对象
	 * @throws IOException 
	 * @throws InvalidFormatException 
	  */
	 public void open() throws IOException, InvalidFormatException{
		 fis = new FileInputStream(file);
		 wb = WorkbookFactory.create(fis);
		 fis.close();
	 }
	 /**
	  * 返回sheet表数目
	  * @return int
	  */
	 public int getSheetCount() {
	  int sheetCount = -1;
	  sheetCount = wb.getNumberOfSheets();
	  return sheetCount;
	 }

	 /**
	  * sheetNum下的记录行数
	  * @return int
	  */
	 public int getRowCount() {
	  if (wb == null)
	  System.out.println("=============>WorkBook为空");
	  Sheet sheet = wb.getSheetAt(this.sheetNum);
	  int rowCount = -1;
	  rowCount = sheet.getLastRowNum();
	  return rowCount;
	 }

	 /**
	  * 读取指定sheetNum的rowCount
	  * @param sheetNum
	  * @return int
	  */
	 public int getRowCount(int sheetNum) {
	  Sheet sheet = wb.getSheetAt(sheetNum);
	  int rowCount = -1;
	  rowCount = sheet.getLastRowNum();
	  return rowCount;
	 }

	 /**
	  * 得到指定行的内容
	  * @param lineNum
	  * @return String[]
	  */
	 public String[] readExcelLine(int lineNum) {
	  return readExcelLine(this.sheetNum, lineNum);
	 }

	 /**
	  * 指定工作表和行数的内容
	  * @param sheetNum
	  * @param lineNum
	  * @return String[]
	  */
	 public String[] readExcelLine(int sheetNum, int lineNum) {
	  if (sheetNum < 0 || lineNum < 0)
		  return null;
	  String[] strExcelLine = null;
	  try {
	   sheet = wb.getSheetAt(sheetNum);
	   row = sheet.getRow(lineNum);

	   int cellCount = row.getLastCellNum();
	   strExcelLine = new String[cellCount + 1];
	   for(int i = 0; i <= cellCount; i++) {
		   strExcelLine[i] = readStringExcelCell(lineNum, i);
	   	}
	  	} catch (Exception e) {
	   e.printStackTrace();
	  }
	  return strExcelLine;
	 }

	 /**
	  * 读取指定列的内容
	  * @param cellNum
	  * @return String
	  */
	 public String readStringExcelCell(int cellNum) {
	  return readStringExcelCell(this.rowNum, cellNum);
	 }

	 /**
	  * 指定行和列编号的内容
	  * @param rowNum
	  * @param cellNum
	  * @return String
	  */
	 public String readStringExcelCell(int rowNum, int cellNum) {
	  return readStringExcelCell(this.sheetNum, rowNum, cellNum);
	 }

	 /**
	  * 指定工作表、行、列下的内容
	  * @param sheetNum
	  * @param rowNum
	  * @param cellNum
	  * @return String
	  */
	public String readStringExcelCell(int sheetNum, int rowNum, int cellNum) {
	  if (sheetNum < 0 || rowNum < 0)
	   return "";
	  String strExcelCell = "";
	  try {
	   sheet = wb.getSheetAt(sheetNum);
	   row = sheet.getRow(rowNum);

	   if (row.getCell((short) cellNum) != null) { // add this condition
	    // judge
	   switch (row.getCell((short) cellNum).getCellType()) {
	    case Cell.CELL_TYPE_FORMULA:
			strExcelCell = "FORMULA ";
			break;
	    case Cell.CELL_TYPE_NUMERIC: {
	    	strExcelCell = String.valueOf(row.getCell((short) cellNum).getNumericCellValue());
	    }
	    	break;
	    case Cell.CELL_TYPE_STRING:
	    	strExcelCell = row.getCell((short) cellNum).getStringCellValue();
	    	break;
	    case Cell.CELL_TYPE_BLANK:
	    	strExcelCell = "";
	    	break;
	    default:
	    	strExcelCell = "";
	    	break;
	    }
	   }
	  } catch (Exception e) {
	   e.printStackTrace();
	  }
	  return strExcelCell;
	 }

	 public static void main(String args[]) {
	  File file = new File(filePath1);
//	  File file = new File(filePath2);
	  ExcalImp readExcel = new ExcalImp(file);
	  try {
		readExcel.open();
	} catch (InvalidFormatException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
	  readExcel.setSheetNum(0); // 设置读取索引为0的工作表
	  // 总行数
	  int count = readExcel.getRowCount();
	  for (int i = 0; i <= count; i++) {
	   String[] rows = readExcel.readExcelLine(i);
	   for (int j = 0; j < rows.length; j++) {
	    System.out.print(rows[j] + " ");
	   }
	   System.out.print("\n");
	  }
	 }
}

基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip基于MATLAB实现旅行推销员问题(TSP)的代码+项目说明(课程大作业)+测试数据.zip 【备注】 1、该资源内项目代码百分百可运行,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值