• java解析excel:案例一


    需求:

    转成

    代码如下:

      

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.commons.lang.StringUtils;
    
    import com.common.util.ExcelReader;
    import com.common.util.dto.ExcelDto;
    import com.common.util.dto.ExcelSheetDto;
    import com.dr.util.PublicUtil;
    
    public class ExcelReaderTest {
        public static void main(String[] args) throws FileNotFoundException {
            //引入excel解析
            ExcelReader excelReader = new ExcelReader();
            
    //        List<Map> list = new ArrayList<Map>();
            Map<String, List<String>> map = new HashMap<String, List<String>>();
            File file = new File("E:\testExcel\sxd.xlsx");
            
            try {
                ExcelDto excelDto = excelReader.readExcel(new FileInputStream(file), file.getName());
                List<ExcelSheetDto> excelSheet= excelDto.getExcelSheetList();
                
                //获取最后一个不为空的sheet
                ExcelSheetDto sheetDto=PublicUtil.getLastNotNullSheet(excelSheet);
                
                String[] colNames = sheetDto.getColNames();
                
                String[][] contents = sheetDto.getRowsContent();
                // 设置时间
                for (int i = 1; i < contents.length; i++) {
                    if (contents[i] != null && StringUtils.isEmpty(contents[i][0])
                            && i > 0) {
                        contents[i][0] = contents[i - 1][0];
                    }
                }
                
                if(colNames!=null){
                    for (int i = 0; i < colNames.length; i++) {
                        int count = 1;
                        String colName = colNames[i];
                        List<String> list = new ArrayList<String>();
                        for (int j = 0; j < contents.length; j++) {
                            list.add(contents[j][i]);
                        }
                        map.put(colName, list);
                    }
                    for (int i = 0; i < map.get("日期").size()/2; i++) {
                        for (int j = 1; j < 5; j++) {
                            System.out.println(map.get("日期").get(i*2));
                            String apptype = "XJ_JLM_JLM0"+j;
                            System.out.println(apptype);
                            System.out.println(map.get(apptype).get(i*2));
                            System.out.println(map.get(apptype).get(i*2+1));
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            
        }
    }
  • 相关阅读:
    .Net Core主机配置
    .NET Core 初识
    控制反转IOC,依赖注入DI理解
    依赖倒置原则解析,理解面向抽象编程
    工厂模式
    IOC 概念
    利用Comparator排序
    使用Integer类实现二叉树排序
    先按成绩由高到低,相等则按年龄由低到高
    对象销毁之前进行某些操作
  • 原文地址:https://www.cnblogs.com/rsdqc/p/7840107.html
Copyright © 2020-2023  润新知