jxl读取指定文件下的所有Excel文件,但是是.xls文件,查的是jxl不支持excel2007
2014-04-02 22:20
344 查看
/** * 读取某个文件夹下的所有文件 * * @throws BiffException */ public boolean readfile(String filepath) throws FileNotFoundException { StringBuffer fileName = new StringBuffer(); File file = new File(filepath); if (!file.isDirectory()) { System.out.println("文件"); System.out.println("path=" + file.getPath()); System.out.println("absolutepath=" + file.getAbsolutePath()); System.out.println("name=" + file.getName()); } else if (file.isDirectory()) { System.out.println("文件夹"); String[] filelist = file.list(); SmartMenuElement menuElement = null; List<BdUnit> units = commonComponentsService.query("from BdUnit where id=65 "); for (int i = 0; i < filelist.length; i++) { File readfile = new File(filepath + "\\" + filelist[i]); if (!readfile.isDirectory()) { // 读取到相应的文件 menuElement = new SmartMenuElement(); // 读取excel中的值 // 通过Workbook的静态方法getWorkbook选取Excel文件 Workbook workbook = null; try { workbook = Workbook.getWorkbook(new File(readfile.getPath())); // 通过Workbook的getSheet方法选择第一个工作簿(从0开始) Sheet sheet = workbook.getSheet(0); int row = sheet.getRows(); // sheet.getColumns(); 固定规格 // int col = 13; // 行 List<SmartMenu> bd = null; boolean tf = true; String msg = ""; double late = 1.0;// 换算率 // p判断文件名称(商品编码) bd = commonComponentsService .query("from SmartMenu where no='" + readfile.getName().substring(0, readfile.getName().indexOf(".")) + "'"); if (bd != null && bd.size() > 0) { menuElement.setHeader(bd.get(0)); // 用于标识读取到第一个元素,一共43个元素 int count = 1; List<BdUnit> unit = null; for (int r = 6; r < row; r++) { if (count == 1) { // 列是从C列开始,行是从6行到15行开始判断 if (sheet.getCell(2, r).getContents() != null && sheet.getCell(2, r).getContents().length() > 0) { if ("营养素摄入量分析".equals(sheet.getCell(2, r).getContents().trim())) { // 将行向下移三行则读取第一个元素值,同时向后移动1列则读取单位,再向后移动1列则读取数量 r = r + 3; // 元素名称 if (sheet.getCell(2, r).getContents() != null && sheet.getCell(2, r).getContents().length() > 0) { System.out.println(sheet.getCell(2, r).getContents()); menuElement.setOperationElements(sheet.getCell(2, r).getContents().trim()); } else { fileName.append(readfile.getName() + ":元素名称不存在 ;"); break; } // 单位 if (sheet.getCell(8, r).getContents() != null && sheet.getCell(8, r).getContents().length() > 0) { System.out.println(sheet.getCell(8, r).getContents()); unit = commonComponentsService.query("from BdUnit where name='" + sheet.getCell(8, r).getContents().trim() + "'"); if (unit != null && unit.size() > 0) { menuElement.setUnit(unit.get(0)); } else if("胆固醇".equals(sheet.getCell(2, r).getContents().trim())){ menuElement.setUnit(units.get(0)); } } else { fileName.append(readfile.getName() + ":单位不存在 ;"); break; } // 数量 if(sheet.getCell(11, r).getContents() != null && sheet.getCell(11, r).getContents().length() > 0){ System.out.println("文件"+readfile.getName()+":"+sheet.getCell(11, r).getContents()); menuElement.setValue(Double.parseDouble(sheet.getCell(11, r).getContents().trim())); } if (sheet.getCell(12, r).getContents() != null && sheet.getCell(12, r).getContents().length() > 0) { System.out.println("文件"+readfile.getName()+":"+sheet.getCell(12, r).getContents()); menuElement.setValue(Double.parseDouble(sheet.getCell(12, r).getContents().trim())); } else { fileName.append(readfile.getName() + ":摄入量不存在 ;"); break; } count++; commonComponentsService.save(menuElement); } } } else { // 元素名称 if (sheet.getCell(2, r).getContents() != null && sheet.getCell(2, r).getContents().length() > 0) { System.out.println(sheet.getCell(2, r).getContents()); menuElement.setOperationElements(sheet.getCell(2, r).getContents().trim()); } else { fileName.append(readfile.getName() + ":元素名称不存在 ;"); break; } // 单位 if (sheet.getCell(8, r).getContents() != null && sheet.getCell(8, r).getContents().length() > 0) { System.out.println(sheet.getCell(8, r).getContents()); unit = commonComponentsService.query("from BdUnit where name='" + sheet.getCell(8, r).getContents().trim() + "'"); if (unit != null && unit.size() > 0) { menuElement.setUnit(unit.get(0)); } else if("胆固醇".equals(sheet.getCell(2, r).getContents().trim())){ menuElement.setUnit(units.get(0)); } } else { fileName.append(readfile.getName() + ":单位不存在 ;"); break; } // 数量 if(sheet.getCell(11, r).getContents() != null && sheet.getCell(11, r).getContents().length() > 0){ System.out.println("文件"+readfile.getName()+":"+sheet.getCell(11, r).getContents()); menuElement.setValue(Double.parseDouble(sheet.getCell(11, r).getContents().trim())); }else if (sheet.getCell(12, r).getContents() != null && sheet.getCell(12, r).getContents().length() > 0) { System.out.println("文件"+readfile.getName()+":"+sheet.getCell(12, r).getContents()); menuElement.setValue(Double.parseDouble(sheet.getCell(12, r).getContents().trim())); } else { fileName.append(readfile.getName() + ":摄入量不存在 ;"); break; } count++; commonComponentsService.save(menuElement); } } } else { fileName.append(readfile.getName() + ":文件找不到对应的商品 ;"); continue; } workbook.close(); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else if (readfile.isDirectory()) { readfile(filepath + "\\" + filelist[i]); } } System.out.println(fileName); } return true; }
相关文章推荐
- POI读取xls、xlsx(个人认为用JXL效果更好,但是JXL并不支持07版的Excel)
- 1.读取excel文件,将输入存储到数据库中(JXL) 2.完成商品的检索相关功能 1.根据分类,显示分类下所有的商品信息,按照库存量从低到高排序(提供补货依据) 2.模糊搜索,根据商品信息(名
- php excel 读取日期问题 在 php excel 读取 xls 格式的文件时,xls 上面显示的是正常的日期格式 但是读取出来的话,就会是一个万位整形数据,这显然不是我们想要的日
- [置顶] 纯js读取excel文件内容,支持所有刘浏览器
- 纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
- 读取指定目录下的所有文件生成一个excel
- jxl读取excel文件中的时间类型
- Java模块 -- 读取Excel文件写入数据库 Mybatis , POI , JXL
- C#.NET读取一个文件目录下所有excel文件
- c#读取excel的xls和xlsx文件的方法
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
- Java读取XLS文件-JXL的使用
- php读取指定目录文件夹下所有文件夹及文件的方法
- 用jxl读写excel的.xls文件的例子 带样式
- 读取指定目录下的所有文件
- 如何使用JavaExcel(jxl)读取一个文件并写入一个新文件
- PHPExcel 对xls表格的文件读取
- C#读取目录下所有指定类型文件的方法
- 解决打开Excel时提示“您尝试打开的文件**.xls的格式与文件扩展名指定的格式不一致
- Java 读取excel指定行列数据以及将数据保存到txt文件中