文档章节

遍历某个文件夹下所有的excel读取sheet标签页面的名称

潘彬彬
 潘彬彬
发布于 2018/09/16 10:01
字数 430
阅读 32
收藏 0

业务场景:

比如说电脑是由很多个小的系统组成,这里的系统指的不是操作系统,是BOM结构。原先一个系统一个Excel,Excel中的标签页是一个零件,页签内的内容是零件属性。如果现在将BOM结构维护进系统,如果手痛添加会非常的费事。

 

代码如下:
import java.io.File;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * 读取文件夹下所有Excel获取sheet页名称
 * @author Tepu
 *
 */
public class ExcelMore {

    public static void main(String[] args) {
        JSONObject tree = new JSONObject();
        // 要读取的文件目录
        String filesPath = "";
        File file = new File(filesPath);
        if(!file.isDirectory()) {
            return;
        }
        
        // 读取目录下的文件列表
        File[] fileArr = file.listFiles();
        for(int i=0; i<fileArr.length; i++) {
            if(isExcel(fileArr[i].getName())) {
                // 只读取Excel文件
                String systemName = getSystemName(fileArr[i].getName());
                tree.put(systemName, toImport(fileArr[i]));
            }
        }
        System.out.println(JSONObject.toJSONString(tree));
    }
    
    /**
     * 读取excel内容
     * @param file
     * @return
     */
    public static JSONArray toImport(File file) {
        JSONArray array = new JSONArray();
        JSONObject obj;
        try {
            XSSFWorkbook workbook = new XSSFWorkbook(file);
            XSSFSheet sheet;
            for(int i=0; i<workbook.getNumberOfSheets(); i++) {
                sheet = workbook.getSheetAt(i);
                obj = new JSONObject();
                obj.put("componentsName", sheet.getSheetName());
                array.add(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(array.size());
        return array;
    }
    
    /**
     * 文件名称如:XXXXX-XXXX系统.xlsx
     * 根据文件名获取系统名称
     * @param fileName
     * @return
     */
    public static String getSystemName(String fileName) {
        if(fileName != null && !fileName.equals("")) {
            return fileName.substring(fileName.indexOf("-") + 1, fileName.lastIndexOf("."));
        }
        return "";
    }
    
    /**
     * 判断文件是不是excel
     * @param fileName
     * @return
     */
    public static boolean isExcel(String fileName) {
        if(fileName != null && (fileName.endsWith(".xls") || fileName.endsWith(".xlsx"))) {
            return true;
        }
        return false;
    }
}
 

© 著作权归作者所有

共有 人打赏支持
潘彬彬
粉丝 8
博文 15
码字总数 3254
作品 0
潍坊
私信 提问
Eran/ExcelToJson

#Excel2Json 概述 Excel2Json 是将Excel表格直接导出成JSON文件格式的一个小工具 使用方法 下载Release文件夹下所有文件,拷贝到本地目录 比如 D:ToolsExcel2Json 目录 修改Run.bat文件 : Ex...

Eran
2015/11/26
0
0
SSM框架基于poi实现excel文件的上传以及导入mysql数据库

最近正在完善之前和小伙伴假期做的一个项目的一些小功能,其中一个就是上传excel文件并且将excel文件中的数据导入到指定数据库中。在这其中有遇到一些很小的细节的问题,所以决定将这个实现过...

Carol998
2018/12/29
0
0
自动化excl学习笔记

学习excl操作 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalFormat; import java.util.A......

知止内明
2017/11/21
0
0
Appium自动化-----数据驱动读取外部Excel文件

=====要进行操作的Excel====== =====对以上Excel的操作============== //Excel的文件操作 public class ExcelUtilTest { private XSSFWorkbook excelWBook;//Excel工作薄 private XSSFSheet ......

小白菜鸟1
2017/11/16
0
0
(C#.net)web页面导出excel方法&防止乱码

1):添加Excel.dll到引用文件中,并在页面后台引用这个命名空间:Using Excel; 2)按钮事件代码: string filename = "filename"+ ".xls"; //导出Excel的名字 try { Excel.Application exce......

InspireWorld
2013/11/28
0
2

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
今天
2
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
5
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部