文档章节

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

潘彬彬
 潘彬彬
发布于 09/16 10:01
字数 430
阅读 12
收藏 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;
    }
}
 

© 著作权归作者所有

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

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

Eran
2015/11/26
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
Jsp+poi+servlet导入Excel到Mysql

package zsl.csfn.excel; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.commons.logging.Log; import org.apach......

no_smoking
2012/09/04
4.1K
5

没有更多内容

加载失败,请刷新页面

加载更多

VSCode 搭建Vue开发环境之Vue CLI

一、简介说明 1.关于VS Code开发工具,安装和配置,更多可以参考以前文章 2.关于Vue.js,Vue是一个优秀的渐进式前端框架,不仅易于上手,还便于与第三方库或既有项目整合。 3.关于Vue是使用方...

tianma3798
25分钟前
2
0
MySQL 相关博客整理

1. 《深入理解 MySQL 底层实现》 简评:文章从硬盘底层存储原理讲解到MySQL存储原理,其中涉及InnoDB 和 Myisam 中 B+Tree 的应用,以及常见数据库优化思路,算是一片很不错的讲解MySQL原理的...

科陆李明
35分钟前
2
0
pada rabbitmq server mangage

查看配置文件 ubuntu@node4:/etc/rabbitmq$ lltotal 28drwxr-xr-x 2 rabbitmq rabbitmq 4096 Jun 6 13:52 ./drwxr-xr-x 104 root root 12288 Sep 26 11:39 ../-rw-r--r-- ......

qwfys
42分钟前
0
0
SpringBoot进阶

慕课网链接 表单数据的验证 在pojo类属性的上面添加注解 @Entitypublic class Girl { @Id @GeneratedValue private Integer id; @NotBlank(message = "这个字段...

踏破铁鞋无觅处
50分钟前
1
0
【SylixOS】QT-QWS流程介绍

QWS简介 QWS(QT Windows System)是QT自行开发的窗口系统,体系结构类似X Windows的C/S结构。QWS Server在物理设备上显示,QWS Client实现界面,两者通过socket进行彼此的通讯。在很多嵌入式系...

suokin
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部