需要架包: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. freeswitch录音功能

    首先备份/usr/local/freeswitch/conf/dialplan/default.xml . 然后vi编辑default.xml ,在 <extension name=" ...

  2. 运行百度语音识别官方iOS demo,无法离线识别解决办法

    需对demo进行如下修改: 1,我下载了一个临时授权文件temp_license_2015-10-27,把它拖到xcode工程里. 2,然后在BDVRViewController.m中的loadOff ...

  3. C 语言 mmap

    /* *@author cody *@date 2014-08-12 *@description */ /* #include <sys/mman.h> void *mmap(void * ...

  4. setTime

    var getTime = function() { var _ = ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09'], //补 ...

  5. Angularjs promise-$q服务详解

    var ngApp=angular.module('ngApp',[]); /************************************************************* ...

  6. 点滴积累【C#】---序列化和反序列化

    序列化和反序列化效果图: 序列化和反序列化代码: 需要添加两个命名空间: using System.IO; using System.Runtime.Serialization.Formatters. ...

  7. 龙芯CAN测试(sja1000)

    测试方案 CAN0和CAN1相连,互相收发数据.连接方式如下图: 使用扩展模式CAN1发送数据CAN0接收数据. 使用标准模式CAN1发送数据CAN0接收数据. 使用EJTAG中bin文件夹内的can ...

  8. (译)Getting Started——1.3.1 Incorporating the Data(合并数据)

    在实现完应用的行为后,需要创建数据模型来支撑应用的界面.应用的数据模型定义了应用中数据的维护方法.数据模型可以是一个基本的dictionary类型,也可以是复杂的数据库,范围很广.好的数据模型可以更为 ...

  9. Ladies' Choice UVALive - 3989 稳定婚姻问题 gale_shapley算法

    /** 题目: Ladies' Choice UVALive - 3989 链接:https://vjudge.net/problem/UVALive-3989 题意:稳定婚姻问题 思路: gale_ ...

  10. css 禅意花园 笔记

    1.  FOUC(Flash Of Unstyled Content) 现象( 在某些情况下,IE加载网页时会出现短暂的CSS样式失效. a: 只发生在Windows上的 IE (5.0版本以上) b ...