java 读取Excel(.xls格式)

话不多说,开整!

使用 Workbook 读取Excel

包:jxl-2.6.12.jar

重点不是下面的一堆代码,是里面的方法,

  • 获取页签的数量:  int  sheet_size = wb.getNumberOfSheets();
  • 每个页签创建一个Sheet对象: Sheet sheet = wb.getSheet(index);
  • 获取总行数: int rows = sheet.getRows();
  • 获取总列数:int columns = sheet.getColumns();
  • 获取表格中的数据 String cellinfo = sheet.getCell(j, i).getContents();

注意:我这里因为项目需要,是一列一列读取的,需要一行一行读取的小伙伴,请使用上面的方法自行编写即可

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadExcel {

	// 去读Excel的方法readExcel,该方法的入口参数为一个File对象
	@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
	public static List<List> readExcel(File file) {
		try {
			// 创建输入流,读取Excel
			InputStream is = new FileInputStream(file.getAbsolutePath());
			// jxl提供的Workbook类
			Workbook wb = Workbook.getWorkbook(is);
			// Excel的页签数量
			int sheet_size = wb.getNumberOfSheets();
			for (int index = 0; index < sheet_size; index++) {
				List<List> outerList = new ArrayList<List>();
				// 每个页签创建一个Sheet对象
				Sheet sheet = wb.getSheet(index);
				// sheet.getRows()返回该页的总行数
				for (int i = 0; i < sheet.getRows(); i++) {
					List innerList = new ArrayList();
					// sheet.getColumns()返回该页的总列数
					for (int j = 0; j < sheet.getColumns(); j++) {
						String cellinfo = sheet.getCell(j, i).getContents();
//						if (cellinfo.isEmpty()) {
//							continue;
//						}
						innerList.add(cellinfo);
					}
					outerList.add(i, innerList);
				}
				return outerList;
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
}
发布了34 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36623327/article/details/89162258