博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java它们的定义jar套餐读Excel(这包括2003和2007)数据,和实例
阅读量:7088 次
发布时间:2019-06-28

本文共 5590 字,大约阅读时间需要 18 分钟。

使用java它们的定义jar套餐读excel数据支持excel2007和excel2003

在http://download.csdn.net/detail/u010792467/8079355下载所须要的包

假设须要excel2003和excel2007文件能够去

http://download.csdn.net/detail/u010792467/8072009下载

在http://download.csdn.net/detail/u010792467/8079345下载project

自己定义jar包运用举例

package com.readExcel;import java.util.List;import Excel.ImportExeclTool;public class exceltest {	public static void main(String[] args) {//		String filePath = "D:\\excel\\EXCEL2007測试.xlsx";		 String filePath="D:\\excel\\EXCEL2003測试.xls";		ImportExeclTool impexcel = new ImportExeclTool();		// 所有sheet页内容		// List
> list= impexcel.readExcel(filePath); // filePath excel文件路径 // 1 代表第一个sheet页 2 代表第一个sheet页... List
> list = impexcel.readExcel(filePath, 1); if (list != null) { for (int i = 0; i < list.size(); i++) { System.out.print("第" + (i) + "行"); List
listCell = list.get(i); for (String s : listCell) { System.out.print(" " + s); } System.out.println(); } } System.out.println("执行完毕"); }}

自己定义jar包源代码

package Excel;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFWorkbook;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.xssf.usermodel.XSSFWorkbook;public class ImportExeclTool {	private String errorInfo;	private static int readSheet = 0;	private static boolean readSheetNum = false;	private static boolean isGtSheetNum = false;	public boolean validateExcel(String filePath) {		if (filePath == null				|| !(is2003Excel(filePath) || is2007Excel(filePath))) {			errorInfo = "文件名称不是excel格式";			return false;		}		File file = new File(filePath);		if (file == null || !file.exists()) {			errorInfo = "excel文件不存在";			return false;		}		return true;	}	public List
> readExcel(String filePath) { List
> dataList = new ArrayList
>(); InputStream is = null; try { if (!validateExcel(filePath)) { System.out.println(); List
list3 = new ArrayList
(); list3.add(errorInfo); dataList.add(list3); return dataList; } boolean is2003Excel = true; if (is2007Excel(filePath)) { is2003Excel = false; } File file = new File(filePath); is = new FileInputStream(file); dataList = readFile(is, is2003Excel); is.close(); } catch (Exception ex) { ex.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { is = null; e.printStackTrace(); } } } return dataList; } public List
> readFile(InputStream inputStream, boolean is2003Excel) { List
> dataLists = null; try { Workbook wb = null; if (is2003Excel) { wb = new HSSFWorkbook(inputStream); } else { wb = new XSSFWorkbook(inputStream); } int sheetNum = sheetCirculation(wb); if (readSheet >= sheetNum) { List
list2 = new ArrayList
(); list2.add("输入页数大于实际sheet页数!!!"); List list4 = new ArrayList(); list4.add(list2); this.isGtSheetNum = true; return list4; } List
> dataList = new ArrayList
>(); if (readSheetNum) { dataLists = read(dataList, wb, readSheet); } else { for (int i = 0; i < sheetNum; i++) { dataLists = read(dataList, wb, i); } } } catch (IOException e) { e.printStackTrace(); } return dataLists; } private List
> read(List
> dataList, Workbook wb, int sheets) { int totalRows = 0; int totalCells = 0; Sheet sheet = wb.getSheetAt(sheets); totalRows = sheet.getPhysicalNumberOfRows(); if (totalRows >= 1 && sheet.getRow(0) != null) { totalCells = sheet.getRow(0).getPhysicalNumberOfCells(); } for (int r = 0; r < totalRows; r++) { Row row = sheet.getRow(r); if (row == null) { continue; } List
rowDataList = new ArrayList
(); for (int c = 0; c < totalCells; c++) { Cell cell = row.getCell(c); String cellValue = ""; if (null != cell) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 cellValue = cell.getNumericCellValue() + ""; break; case HSSFCell.CELL_TYPE_STRING: // 字符串 cellValue = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean cellValue = cell.getBooleanCellValue() + ""; break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 cellValue = cell.getCellFormula() + ""; break; case HSSFCell.CELL_TYPE_BLANK: // 空值 cellValue = ""; break; case HSSFCell.CELL_TYPE_ERROR: // 故障 cellValue = "非法字符"; break; default: cellValue = "未知类型"; break; } } rowDataList.add(cellValue); } dataList.add(rowDataList); } return dataList; } private int sheetCirculation(Workbook wb) { int sheetCount = -1; sheetCount = wb.getNumberOfSheets(); return sheetCount; } public static boolean is2003Excel(String filePath) { return filePath.matches("^.+\\.(?

i)(xls)$"); } public static boolean is2007Excel(String filePath) { return filePath.matches("^.+\\.(?i)(xlsx)$"); } public ImportExeclTool() { } public String getErrorInfo() { return errorInfo; } public List<List<String>> readExcel(String filePath, int num) { this.readSheet = num - 1; this.readSheetNum = true; if (num <= 0) { List list0 = new ArrayList(); List list5 = new ArrayList(); list0.add("excel必须大于0页!!!"); list5.add(list0); return list5; } List<List<String>> list = readExcel(filePath); if (!this.isGtSheetNum && list.size() == 0) { List<String> list1 = new ArrayList<String>(); list1.add("sheet页中数据为空!!!"); list.add(list1); } return list; } } </span>

作者:儱剑阿攵

转载请注明链接:http://blog.csdn.net/awenluck/article/details/40442207

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
ansible 模块之 yum模块详解
查看>>
PhoneGap跨平台Android环境的搭建
查看>>
西北大学(Northwestern University)-大数据分析课程
查看>>
php框架-hoby
查看>>
7.1 vim编辑器
查看>>
bash 词频统计
查看>>
Python之转义字符表
查看>>
mysql并发插入重复数据问题的解决思路
查看>>
MySQL 5.7.x修改root默认密码(CentOS下)
查看>>
Linux下动态加载SO文件
查看>>
Mysql创建、删除用户
查看>>
我的友情链接
查看>>
MySQL-MySQL常用命令
查看>>
Linux iptraf 网络监控
查看>>
Swift::8::枚举
查看>>
ZABBIX web端 显示 server 运行状态 不
查看>>
Aspose.Words使用教程之在文档中找到并替换文本
查看>>
ORACLE官方文档如何学习
查看>>
google guava包集合类HashMultiset的基本用法
查看>>
linux 进程和线程
查看>>