zoukankan      html  css  js  c++  java
  • java操作excel数据写入map集合并按照value排序

    
    
    /**
    * @Author: 唐
    * @Date: 2020/2/26 14:40
    */
    import java.io.File;
    import java.io.IOException;
    import java.util.*;

    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.usermodel.WorkbookFactory;
    public class op
    {
    public static void main(String[] args) throws IOException,
    InvalidFormatException,NullPointerException
    {

    String key01=null;
    String value01 = null;
    Map<String,String> map=new HashMap<>();
    List list=new LinkedList();
    File xlsFile = new File("C:\Users\Admin\Desktop\test03.xlsx");
    // 获得工作簿
    Workbook workbook = WorkbookFactory.create(xlsFile);
    // 获得工作表个数
    int sheetCount = workbook.getNumberOfSheets();
    // 遍历工作表
    for (int i = 0; i < sheetCount; i++)
    {
    Sheet sheet = workbook.getSheetAt(i);
    // 获得行数
    int rows = sheet.getLastRowNum() + 1;
    // 获得列数,先获得一行,在得到改行列数
    Row tmp = sheet.getRow(0);
    if (tmp == null)
    {
    continue;
    }
    int cols = tmp.getPhysicalNumberOfCells();
    // 读取数据 getPhysicalNumberOfCells 是获取不为空的列个数。
    for (int row = 0; row < rows; row++)
    {
    Row r = sheet.getRow(row);
    for (int col = 0; col < cols; col++)
    {
    String temp01 = r.getCell(col).getStringCellValue();
    list.add(temp01);
    }
    System.out.println();
    }
    // System.out.println(list);
    for (int j = 0; j <list.size() ; j=j+2) {
    // System.out.println("key"+list.get(j));
    // System.out.println("value"+list.get(j+1));
    map.put(list.get(j).toString(),list.get(j+1).toString());
    }
    for (String key : map.keySet()) {
    String value = map.get(key);
    // System.out.println(key + "--->" + value);
    }
    List<Map.Entry<String,String>> list01 = new ArrayList<Map.Entry<String,String>>(map.entrySet());
    Collections.sort(list01,new Comparator<Map.Entry<String,String>>() {
    //升序排序
    public int compare(Map.Entry<String, String> o1,
    Map.Entry<String, String> o2) {
    return o1.getValue().compareTo(o2.getValue());
    }

    });

    for(Map.Entry<String,String> mapping:list01){
    System.out.println(mapping.getKey()+":"+mapping.getValue());
    }
    }


    }
    }



    RUSH B
  • 相关阅读:
    C# this关键字的四种用法
    MVC Html.AntiForgeryToken() 防止CSRF攻击
    简单的C#网络爬虫
    string format的各类格式及用法
    选取两个有序数组中最大的K个值,降序存入另一个数组中
    程序员面试:青蛙跳台阶问题(变态跳台阶)
    贪心算法,递归算法,动态规划算法比较与总结
    storm简介[ZZ]
    逻辑回归:使用SGD(Stochastic Gradient Descent)进行大规模机器学习
    mahout分类
  • 原文地址:https://www.cnblogs.com/tangsonghuai/p/12393291.html
Copyright © 2011-2022 走看看