利用POI读取Excel文件
来源:互联网 发布:js获取当前触发事件 编辑:程序博客网 时间:2024/05/29 09:31
前几天实现了利用POI创建Excel文件,今天分享一下如何利用POI读取Excel文件。
要读取的文件内容,以下截图已给出:
下面讲读取文件内容的方法。
先创建一个读取Excel的工具类。
/** * 操作Excel表格的功能类 */public class ExcelReader { private POIFSFileSystem fs; private HSSFWorkbook wb; private HSSFSheet sheet; private HSSFRow row; /** * 读取Excel表格表头的内容 * @param InputStream * @return String 表头内容的数组 */ public String[] readExcelTitle(InputStream is) { try { //获得文件输入流对象 fs = new POIFSFileSystem(is); //获得与文件输入流相关的工作簿对象 wb = new HSSFWorkbook(fs); } catch (IOException e) { } //获得工作簿的第一张工作表 sheet = wb.getSheetAt(0); //获得工作表的首行 row = sheet.getRow(0); // 标题总列数 int colNum = row.getPhysicalNumberOfCells(); //String数组保存首行的各个标题 String[] title = new String[colNum]; for (int i = 0; i < colNum; i++) { title[i] = getCellFormatValue(row.getCell(i)); } return title; } /** * 读取Excel数据内容 * @param InputStream * @return Map 包含单元格数据内容的Map对象 */ public Map<Integer, String> readExcelContent(InputStream is) { //Map集合存储正文各行的内容,键为行的索引,值为该行所有数据连成的字符串 Map<Integer, String> content = new HashMap<Integer, String>(); String str = ""; try { fs = new POIFSFileSystem(is); wb = new HSSFWorkbook(fs); } catch (IOException e) { } sheet = wb.getSheetAt(0); // 得到总行数 int rowNum = sheet.getLastRowNum(); row = sheet.getRow(1); // 得到总列数 int colNum = row.getPhysicalNumberOfCells(); // 正文内容应该从第二行开始,第一行为表头的标题 for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i); int j = 0; while (j < colNum) { //将i行的内容转格式后加到str后 // 每个单元格的数据内容用"-"分割开,以后需要时用String类的replace()方法还原数据 str += getCellFormatValue(row.getCell(j)) + "----"; j++; } //将存好的str放到Map容器中 content.put(i, str); str = " "; } return content; } /** * 根据HSSFCell类型设置数据 * @param cell * @return */ private String getCellFormatValue(HSSFCell cell) { //cellvalue用来存储格式成字符串的单元格数据 String cellvalue = ""; //非空 if (cell != null) { // 判断当前Cell的Type:数值型,公式型,字符串型 switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: cellvalue =String.valueOf(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: cellvalue=String.valueOf(cell.getCellFormula()); break; case HSSFCell.CELL_TYPE_STRING: cellvalue = cell.getStringCellValue(); break; default: cellvalue = " "; break; } } //为空返回空字符串 else cellvalue = ""; return cellvalue; }}
然后创建个测试类,利于工具类关联要读取的文件。(我的文件在g盘目录下)
public class Demo {public static void main(String[] args) {InputStream is=null;try{ // 对读取Excel表格标题测试 is = new FileInputStream("g:\\Book.xls"); ExcelReader excelReader = new ExcelReader(); String[] title = excelReader.readExcelTitle(is); System.out.println("获得Excel表格的标题:"); for (String s : title) System.out.print(s + " "); // 对读取Excel表格内容测试 Map<Integer, String> map = excelReader.readExcelContent(is); System.out.println("\n获得Excel表格的内容:"); for (int i = 1; i <= map.size(); i++) { System.out.println(map.get(i)); } } catch (FileNotFoundException e) { System.out.println("未找到指定路径的文件!"); e.printStackTrace(); } finally { try {is.close(); } catch (IOException e) { } }}}
这样就实现了对Excel文件的读取!
0 0
- 利用POI读取Excel文件
- JAVA利用Apache Poi读取Excel文件
- 利用POI读取excel
- 利用poi读取excel
- poi 读取excel 文件
- poi读取excel文件
- POI读取excel文件
- poi读取excel文件
- java利用poi读取excel
- java利用poi读取excel
- java利用poi读取excel
- 利用POI读取Excel数据,实现同时读取多个Excel文件,兼容所有浏览器
- 使用POI读取EXCEL文件
- 使用POI读取EXCEL文件
- poi读取EXCEL文件代码
- java poi读取excel文件
- 使用POI读取excel文件
- Java--POI读取excel文件
- Android服务之Service
- Android中Service(服务)详解
- Android Intent 总结
- poj 1679 The Unique MST
- Android根据Data匹配隐式Intent的实例
- 利用POI读取Excel文件
- Android SQLite总结(一)
- HDU4638——Group(树状数组+离线操作)
- ANDROID开发之SQLite详解
- Android:文件下载和写入SD卡学习小结
- N皇后问题
- Android文件下载进度条的实现
- Android解析XML
- ContentProvider的使用小结