1.使用poi读取

/*** 从年报excel表数据导入到base_target_school_kpi数据库中,表:base_target_school_kpi* */public void insertBaseTargetSchoolKpi(){String hasRun = new String();String nowRun = new String();try {// 因为jxl不支持xlsx,使用poiSystem.out.println("poi");// SCHOOL_COUNT,因为1String[] c = new String[]{"TOTAL_PROJECT_FUNDS","SCHOOL_COUNT","CENTRE_LOCAL_MONEY_ADD_UP","CENTRE_MONEY_ADD_UP","PROVINCE_GAIBO_MONEY","CITY_GAIBO_MONEY","COUNTY_MONEY_ADD_UP","XS_MONEY_ADD_UP","MONEY_PERCENT_XS_IN_TOTAL","XS_01_MONEY_ADD_UP","XS_01_XSMJ","XS_01_01_JXJFZYFMJ","XS_01_01_01_PTJSMJ","XS_01_01_02_SYSMJ","XS_01_01_03_TSSMJ","XS_01_01_04_JSJJSMJ","XS_01_01_05_DGNJSMJ","XS_01_01_06_YYJSMJ","XS_01_01_07_MSJSMJ","XS_01_01_10_QTMJ","XS_01_02_SHYFMJ","XS_01_02_01_XSSSMJ","XS_01_02_02_STMJ","XS_01_02_02_01_XSCTMJ","XS_01_02_03_CSMJ","XS_01_02_04_GLFMJ","XS_01_02_05_YSMJ","XS_01_02_06_JGSSMJ","XS_01_02_07_SHYFQTMJ","XS_01_03_XZYFMJ","XS_01_03_01_JSBGSMJ","XS_01_03_02_XZBGSMJ","XS_01_03_03_WYDASMJ","XS_01_03_04_AFJKSMJ","XS_01_03_05_WSBJSMJ","XS_01_03_06_CDZSSMJ","XS_01_03_07_XZYFQTMJ","YDCD_MONEY_ADD_UP","YDCD_SQUARE_ADD_UP","FSSS_MONEY_ADD_UP","FSSS_02_WQCD","FSSS_03_HPTJ","FSSS_04_XYYHMJ","FSSS_06_GLSL","FFSS_OTHER_MONEY","EQ_TOTAL_MONEY","SHSS_MONEY_ADD_UP","SHSS_01_MONEY_XSYC","SHSS_01_XSYCSL","SHSS_02_MONEY_STSB","SHSS_02_STSBSL","SHSS_03_MONEY_YSSS","SHSS_03_YSSSSL","SHSS_04_MONEY_ABSB","SHSS_04_ABSBSL","SHSS_06_MONEY_CNSS","SHSS_06_SSCNSSSL","SHSS_07_MONEY_SHSSQT","SHSS_07_SHSSQTSL","TS_01_MONEY_TS","TS_01_TSSL","KZY_01_MONEY_KZY","KZY_01_KZYSL","XXH_SYYQ_YYM_QTSB_MONEY_ADD_UP","XXH_MONEY_JSJ","XXH_06_JSJSJSL","XXH_MONEY_DMT","XXH_03_WLDMTJSSL","XXH_04_WLJSJJSSL","SYYQ_MONEY_ADD_UP","SYYQ_AMOUNT_ADD_UP","SYYQ_01_MONEY_ADD_UP","SYYQ_01_XXSXKXSYYQSL","SYYQ_03_MONEY_ADD_UP","SYYQ_03_CZWLYQSL","SYYQ_04_MONEY_ADD_UP","SYYQ_04_CZHXYQSL","SYYQ_05_MONEY_ADD_UP","SYYQ_05_CZSWYQSL","SYYQ_06_MONEY_ADD_UP","SYYQ_06_CZDLYQSL","SYYQ_02_MONEY_ADD_UP","SYYQ_02_CZSXYQSL","YTM_MONEY_ADD_UP","YTM_AMOUNT_ADD_UP","YTM_01_MONEY_ADD_UP","YTM_01_YYQCSL","YTM_02_MONEY_ADD_UP","YTM_02_TYQCSL","YTM_03_MONEY_ADD_UP","YTM_03_MSQCSL","QT_01_MONEY_ADD_UP","QT_01_QTSBSL","COMMENTS"};String sql = "";File file = new File("D:/work/文件接收/gb_mis/nb/test");XSSFWorkbook xssfWorkbook = null;if (file.isDirectory()) {// 获取路径下的所有文件File[] files = file.listFiles();for (int f = 0; f < files.length; f++) {// 当前执行的文件是:System.out.println("当前执行的文件是:" + files[f].getName());hasRun = hasRun + files[f].getName();nowRun = files[f].getName();// 如果还是文件夹 递归获取里面的文件 文件夹// 创建输入流,读取ExcelInputStream is = new FileInputStream(files[f].getAbsolutePath());// 读取xlsxxssfWorkbook = new XSSFWorkbook(is);// 循环获取第三到第七个sheetfor (int numSheet = 2; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);if(xssfSheet == null){continue;}// 对于每个sheet,从第9行开始读取Map<String,Object> map = new HashMap<>();for (int rowNum = 9; rowNum < xssfSheet.getLastRowNum(); rowNum++) {XSSFRow xssfRow = xssfSheet.getRow(rowNum);if(xssfRow == null){continue;}map = new HashMap<>();// 从第一列开始读取String schoolName = "";// 判断是否修改过String hasChange = "N";for(int columnNum = 1 ; columnNum<96; columnNum++){XSSFCell cell = xssfRow.getCell(columnNum);
//                              System.out.println(this.getValue(cell));if(cell !=null){// 每一行都设置成字符串
//                                  cell.setCellType(Cell.CELL_TYPE_STRING);
//                                  sqlBuilder.append(cell.getStringCellValue());String v = this.getValue(cell);if(StringUtils.isBlank(v)){v = "0";}if(columnNum == 1){// 第二列是学校名字schoolName = v;if(StringUtils.isBlank(schoolName)){schoolName = "";}}else if(columnNum == 2){// 项目总资金(万元)金额必须大于0if(NumberUtils.isNumber(v)){Double TOTAL_PROJECT_FUNDS = Double.valueOf(v);if(TOTAL_PROJECT_FUNDS == null) {TOTAL_PROJECT_FUNDS = 0.0;if(TOTAL_PROJECT_FUNDS < 0.0) {continue;}}}else{continue;}}else if(columnNum == 3){// 是school_count  不保存}else if(columnNum == 95){// 是备注,可以为字符串map.put(c[columnNum-2], v);}else{// 不能为非数字if(NumberUtils.isNumber(v)){}else{v = "0";hasChange = "Y";}map.put(c[columnNum-2], v);}}}// 学校名不能为空if(StringUtils.isBlank(schoolName)){continue;}if("null".equals(schoolName)) {continue;}// 进行保存数据库操作base_target_school_kpi// 1.生成uuidmap.put("TS_KPI_ID", UUID.randomUUID().toString());// 2.根据sheet的来判断是第几年map.put("T_YEAR", "year_" + (xssfSheet.getSheetName().substring(0,4)));// 3.重要数据放在comment里String commits = (String) map.get("COMMENTS");// 学校名字commits = commits + "///" + schoolName;// 哪个文件哪个sheetcommits = commits + "///" + files[f].getName() + ";" + xssfSheet.getSheetName();// 是否修改的标记if("Y".equals(hasChange)){commits = commits + "///" + "hasChange:" + hasChange;}map.put("COMMENTS", commits);// 4.通过学校名字匹配学校BaseSchool baseSchool = CacheBaseSchoolManager.getSchooNamel(StringUtils.trim(schoolName));if(baseSchool != null){// 如果查到了学校就可以赋值了map.put("SCHOOL_ID", baseSchool.getId());map.put("COUNTY_ID", baseSchool.getCountyId());map.put("CITY_ID", baseSchool.getCityId());map.put("PROVINCE_ID", baseSchool.getProvinceId());}System.out.println(schoolName + map.toString());this.insertData(map, "base_target_school_kpi_test");}}}} } catch (Exception e) {// TODO: handle exceptione.printStackTrace();System.out.println("已经运行的文件为:"  + hasRun);System.out.println("当前运行的文件为:"  + nowRun);}}

2.使用jxl读取

/*** 从年报excel表数据导入到数据库中,表:nb_xx_2017* */public void insertnianbao(){try {String sql = "";File file = new File("D:/000.xls");// 创建输入流,读取ExcelInputStream is = new FileInputStream(file.getAbsolutePath());// jxl提供的Workbook类Workbook wb = Workbook.getWorkbook(is);// Excel的页签数量int sheet_size = wb.getNumberOfSheets();// 每个页签创建一个Sheet对象--------对应是第几个sheetSheet sheet = wb.getSheet(3);// sheet.getRows()返回该页的总行数for (int i = 7; i < sheet.getRows(); i++) {String uid = UUID.randomUUID().toString();String str = " '"+ uid + "', ";// sheet.getColumns()返回该页的总列数for (int j = 0; j < sheet.getColumns(); j++) {String cellinfo = sheet.getCell(j, i).getContents().trim();str = str + "'" +  cellinfo + "',";}//System.out.println(str);str = str.substring(0,str.length()-1);sql = "INSERT INTO NB_TJ_2018 VALUES ("+ str +")";this.exeSql(sql);System.out.println(sql);}} catch (Exception e) {// TODO: handle exceptionSystem.out.println(e);}}

循环读取目录下的文件,使用poi读取excel的xlsx,使用jxl读取xls文件相关推荐

  1. pyhton 读取目录下所有文件夹下的文件(指定文件)

    前言 1.有的时候比如我们操作错了,将一个文件夹里的.png图片都弄到了不同的文件夹中,现在想还原,如果一个个手工选择剪切,恐怕不是一个好办法. 2.有的时候,想把某个目录下的所有文件夹中的jpg格式 ...

  2. linux循环目录下目录,Shell循环列出目录下所有文件或查找目录下包含指定字符串的文件...

    一.循环列出目录下所有文件 #!/bin/bash function frfile() { local basefolder=$1 echo $basefolder #local filename f ...

  3. python加载图片并显示_python读取目录下所有的jpg文件,并显示第一张图片的示例...

    python读取目录下所有的jpg文件,并显示第一张图片的示例 如下所示: # -*- coding: UTF-8 -*- import numpy as np import os from scip ...

  4. python读取目录下所有的jpg文件,并显示第一张图片

    # -*- coding: UTF-8 -*- import numpy as np import os from scipy.misc import imread, imresize import ...

  5. Python:批量读取目录下jpg文件,并输出jpg文件的绝对路径到指定txt文档中。

    #功能:读取jpg文件,输出绝对目录到txt中. import os.path import glob import os"""https://blog.csdn.net ...

  6. php读取文件夹,PHP readdir()和scandir():读取目录下的文件及文件夹

    前面我们介绍了使用<opendir() 函数>打开一个目录资源,正确打开目录后就可以获取该目录下的文件及文件夹信息了.在 PHP 中提供了 readdir() 和 scandir() 两个 ...

  7. 读取目录下的图片写入剪切板然后发送到qq窗口

    平时为了奖励群友,把自己私藏的好康图片发给群友,但是一张一张发太过于麻烦,于是就想着写一个脚本.用C语言写的.具体涉及到读取文件夹下的文件,剪切板操作,跟键盘事件的相关操作,控制台窗口字体颜色修改.废 ...

  8. Golang ioutil.ReadDir 读取目录下的内容

    ioutil中提供了一个非常翻遍的函数函数ReadDir,他读取目录并返回排好序的文件以及子目录名([]os.FileInfo) example:编写程序输出某目录下的所有文件. package ma ...

  9. php遍历目录图片并显示,PHP读取目录下所有图片并输出一张图片地址

    原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3048.html 关键词:PHP所有图片 PHP枚举目录与子目录 PHP读取目录与子目录 前几天,本来想给 ...

最新文章

  1. vue router name命名规范_超完整的Vue入门指导
  2. ES6标准学习: 4、数组的扩展
  3. Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理
  4. Promise的基本使用
  5. java if在内存中_java如何将对象暂存到内存中?
  6. 微课|中学生可以这样学Python(例6.4):因数分解
  7. 祖国60岁生日,我在北京度过。
  8. matlab-读取文件
  9. MATLAB命令窗常用命令
  10. Java学生成绩管理系统(一次学会java类及容器使用,内含java编程小tips)
  11. 感性电路电流计算_如何计算电机的电流?跟转速有关系吗?附案例分析
  12. linux设置自动获取ip命令,详解如何设置CentOS 7开机自动获取IP地址
  13. 纯HTML5+CSS3仿B站首页
  14. Payment相关逻辑
  15. leetcode【121】Best Time to Buy and Sell Stock【c++,O(n)复杂度,时间97%,空间100%】
  16. Sci论文常见的格式问题
  17. 纷享销客2022新增长系列之《高科技行业橙皮书》重磅发布
  18. 爬了深圳3W+二手房我发现了这些秘密
  19. 自动驾驶车辆控制(坐标转换与横向积分误差)
  20. wps如何使用ppt美化大师_IT世界网

热门文章

  1. Java Calendar before()方法与示例
  2. 微型计算机2019年年度盘点,2019年笔记本电脑市场盘点:AMD突破的一年
  3. 正整数N转换成一个二进制数
  4. HTML5-web通信之 Cross-Document Messaging(XDM) Channel Messaging
  5. 前端最基础的效果----手风琴效果,用JS实现!!!
  6. Mac系统 chromedriver升级
  7. 网络攻防技术——幽灵攻击实验
  8. java实现求解汉诺塔问题(提示, 使用递归)
  9. 论文解析-《Understanding the difficulty of training deep feedforward neural networks》
  10. CSS:position属性的区别