JXL读取EXCEL

/**
 * Excel解析类
 * 
 * @author tim
 * 
 */
public class ExcelParse {

	// 记录读取开始时间
	private static long sTime = 0;

	// 记录读取结束时间
	private static long eTime = 0;

	// 记录读取完毕所用时间
	private static long time = 0;

	private static Workbook wb;

	/**
	 * 读取Excel文件的内容
	 * 
	 * @param file
	 *            待读取的文件
	 * @return
	 */
	public static void parseExcel(File file) {
		try {
			sTime = System.currentTimeMillis();
			// 构造Workbook(工作薄)对象,此先将EXCEL文件装入内存,易引起内存溢出!
			wb = Workbook.getWorkbook(file);
			if (wb == null) {
				return;
			}
			// 获得了Workbook对象之后,就可以通过它得到Sheet(工作表)对象了
			Sheet[] sheet = wb.getSheets();

			if (sheet != null && sheet.length > 0) {
				// 对每个工作表进行循环
				for (int i = 0; i < sheet.length; i++) {
					int sheetNumber = i + 1;
					// 得到当前工作表的名字
					String sheetName = sheet.getName();
					System.out.println("********正在读取第" + sheetNumber + "个工作表:"
							+ sheetName + "********");
					// 得到当前工作表的行数
					int rowNum = sheet.getRows();
					for (int j = 0; j < rowNum; j++) {
						// 记录行号
						int lineNumber = j + 1;
						System.out.println("\n******正在读取第" + lineNumber
								+ "行数据******");
						// 得到当前行的所有单元格
						Cell[] cells = sheet.getRow(j);
						if (cells != null && cells.length > 0) {
							// 对每个单元格进行循环
							for (int k = 0; k < cells.length; k++) {
								// 记录列号
								int columeNumber = k + 1;
								// 读取当前单元格的值
								String cellValue = cells[k].getContents();
								System.out.println("***第" + columeNumber
										+ "列数据:" + cellValue);
							}
						}
					}
				}
				eTime = System.currentTimeMillis();
				time = eTime - sTime;
				System.out.println("\n******读取完毕,共耗时:" + time + "毫秒******");
			}
		} catch (BiffException e) {
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("读入文档时错: " + e.getMessage());
		} finally {
			// 最后关闭资源,释放内存
			if (wb != null) {
				wb.close();
			}
		}

	}
}

你可能感兴趣的:(工作,Excel,J#)