需要架包:poi相关jar,Md5.jar
----------------------------------------------------------------------------------------------------------------------------------
package com.fanqi.test;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.json.JSONArray;
import org.json.JSONObject; public class TestDemo1 { /*
* 读取Excel数据
*/
public List<Map<String, Object>> readExcel(String filename) { FileInputStream in;
XSSFWorkbook workbook = null;
try {
in = new FileInputStream(filename);
workbook = new XSSFWorkbook(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
XSSFSheet sheet = workbook.getSheetAt(0);
int num = 0;
List<Map<String, Object>> listCanshu = new ArrayList<Map<String, Object>>();
for(int i=1;i<=sheet.getLastRowNum();i++){
Map<String, Object> map = new TreeMap<String, Object>();
String cell0 = sheet.getRow(i).getCell(0).getStringCellValue();
String cell1 = sheet.getRow(i).getCell(1).getStringCellValue();
map.put("canshu1", cell0);
map.put("canshu2", cell1);
listCanshu.add(map);
}
return listCanshu;
}
/*
* 组装成JSON形式
*/
public JSONArray zuZhuangCanShu(List<Map<String, Object>> listCanshu) { JSONArray jArray = new JSONArray();
for(int i=0;i<listCanshu.size();i++ ){
JSONObject json = new JSONObject(listCanshu.get(i));
jArray.put(json);
}
return jArray;
}
/*
* 验签,加密
*/
public List signMD5(List<Map<String, Object>> l) { List list = new ArrayList();
for(int i=0;i<l.size();i++){
String str = "";
StringBuffer buffer = null;
byte[] result = null;
Set set = l.get(i).entrySet();
Iterator it = set.iterator();
while(it.hasNext()){
Map.Entry mapEntry = (Map.Entry) it.next();
String key = (String) mapEntry.getKey();
String value = (String) mapEntry.getValue();
str = str + key + "=" + value + "&";
}
str = str.substring(0, str.length()-1);
try {
MessageDigest md = MessageDigest.getInstance("MD5");
result = md.digest(str.getBytes());
buffer = new StringBuffer();
for(byte r : result){
String s =Integer.toHexString(0xff & r);
if(s.length()==1){
buffer.append("0"+s);
}else{
buffer.append(s);
}
} } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
list.add(buffer.toString());
} return list;
} public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
TestDemo1 t = new TestDemo1();
List<Map<String, Object>> l = t.readExcel("D:\\1.xlsx");
JSONArray jArray = t.zuZhuangCanShu(l);
List list = t.signMD5(l);
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
} }

 
 

Java读取、创建Excel;验签,加密的更多相关文章

  1. java读取大容量excel之二(空格、空值问题)

    最近在项目中发现,对于Excel2007(底层根本是xml) ,使用<java读取大容量excel之一>中的方式读取,若待读取的excel2007文件中某一列是空值,(注意,所谓的空值是什 ...

  2. ios RSA 验签加密解密

    关于公钥和私钥的生成,网上有很多本地生产的方法,我遇到的问题是,按照网上生产的方式生成7个文件,本地使用没有问题,但是和后台交互就不行了. 发现生成公钥和私钥的没有那么麻烦,使用在线生产工具就能使用, ...

  3. java读取大容量excel之一

    最近在用poi读取大容量excel,发现只要是excel文件大于2M左右,便会出现OOM(out of memory),经过查询得知,原来poi读取excel的原理是如下: org.apache.po ...

  4. 证书:数字签名和验签&加密和解密

    用的是湖北省数字证书认证管理中心的签名和加密 1.带私钥的证书,即p12格式证书(后缀为.pfx) 2.不带私钥的证书,有多种格式,通常我们使用的是cer格式证书(后缀为.cer) 一. 1.什么是对 ...

  5. java - 读取,导出 excel文件数据

    首先需下载poi java包,添加至构建路径, 写处理方法: import java.io.FileInputStream;import java.io.FileOutputStream;import ...

  6. java POI创建Excel示例(xslx和xsl区别 )

    Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...

  7. Java读取批量Excel文件

    1.首先基础知识: 原文链接:https://blog.csdn.net/baidu_39298625/article/details/105842725 一 :简介 开发中经常会设计到excel的处 ...

  8. JAVA实现创建Excel表并导出(转发)

    <span style="font-family:Verdana, Arial, Helvetica, sans-serif;line-height:25.2px;background ...

  9. jmeter接口测试-调用java的jar包-csv参数化请求-BeanShellPreProcessor生成验签作为请求验证参数-中文乱码----实战

    背景及思路: 需求:要做 创建新卡 接口的测试,要求: 1. 不需要每次手动修改请求参数. 方案:文中先用excle将数据准备好,导出为csv格式,再用jmeter的csv请求进行参数化 2. 卡号需 ...

  10. JAVA/PHP/C#版RSA验签--转

    本文是上一篇文章的兄弟篇,上篇文章介绍了客户端的sdk中如何基于JAVA/PHP/C#使用RSA私钥签名,然后服务端基于JAVA使用RSA公钥验签,客户端签名/服务端验签的模式只能帮助服务端检查客户端 ...

随机推荐

  1. FastDFS这种架构,如何配置?

    FastDFS这种架构,如何配置?才能让欧洲用户可以就近下载Storage Server1的文件,而不是到中国的Storage Server 2下载?

  2. STL容器分析--list

    就是一双向链表,可高效地进行插入删除元素.

  3. 安装Spring+搭建Spring开发环境

    https://blog.csdn.net/csdnsjg/article/details/80152815 https://jingyan.baidu.com/article/219f4bf798e ...

  4. overflow知多少

    本文地址: http://www.hicss.net/some-overflow-knowledge/ 最近在研究OOCSS,当打开template.css阅读第一行时,震惊了,第一眼居然没看懂... ...

  5. Atitit..css的体系结构

    Atitit..css的体系结构 1. Oocss 与 bem标准化1 1.1. 四种样式表及六种选择器1 1.2. 常用的css框架  amazeui   bootstrap1 1.3. Css图标 ...

  6. 【大话QT之十三】系统软件自己主动部署实现方案

    本篇文章是对[大话QT之十二]基于CTK Plugin Framework的插件版本号动态升级文章的补充,在上篇文章中我们阐述的重点是新版本号的插件已经下载到plugins文件夹后应该怎样更新本地正在 ...

  7. 通过camera + gallery android上传文件到html

    今天做项目的时候遇到一个问题:当html通过js调用input of type file时候,希望android手机的选择器可以同时出现“相机”和“图片”等,但通过下面代码 Intent i = ne ...

  8. nyoj 460 项链 (区间dp)

    项链 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子, ...

  9. fiddler获取手机请求

    最近由于项目的关系,一直在测试APP,但是比较令人头痛的问题就是,APP的测试没有办法像web的测试那样,可以直接的通过开发工具看到请求和响应,对于一些东西只能去看日志(比较麻烦),偶然间发现了fid ...

  10. Handler vs Timer,究竟该用哪个?

    Handler vs Timer 在我们Android开发过程中,经常需要执行一些短周期的定时任务,这时候有两个选择Timer或者Handler.然而个人认为:Handler在多个方面比Timer更为 ...