Excel 读取并解密

Excel 读取并解密packagecom;/****/importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjav…

大家好,又见面了,我是你们的朋友全栈君。package com;

/**

*

*/

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import jxl.write.Label;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.DateUtil;

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.xssf.usermodel.XSSFWorkbook;

import com.utils.CryptDESUtil;

/**

* @author qu

*/

public class Main {

private static SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

public static void main(String[] args) throws Exception {

//一下是创建新的Excel 参数

File directory = new File(“1234解密.xls”);

directory.getCanonicalPath(); //得到的是C:/test/abc

String path = directory.getAbsolutePath(); //得到的是执行程序所在的文件路径

//File filewrite=new File(“E:\\解密1234.xls”);

File filewrite=new File(path);

filewrite.createNewFile();

OutputStream os=new FileOutputStream(filewrite);

//创建工作薄

WritableWorkbook workbook = jxl.Workbook.createWorkbook(os);

//创建新的一页

WritableSheet newSheet = workbook.createSheet(“First Sheet”,0);

//一下是处理被机密的文件

Workbook wb =null;

Sheet sheet = null;

Row row = null;

List<Map<String,String>> list = null;

String cellData = null;

File directory2 = new File(“1234.xlsx”);

directory2.getCanonicalPath(); //得到的是C:/test/abc

String path2 = directory2.getAbsolutePath(); //得到的是C:/test/abc

//String filePath = “E:\\1234.xlsx”;

wb = readExcel(path2);

if(wb != null){

//用来存放表中数据

list = new ArrayList<Map<String,String>>();

//获取第一个sheet

sheet = wb.getSheetAt(0);

//获取最大行数

int rownum = sheet.getPhysicalNumberOfRows();

//获取第一行

row = sheet.getRow(0);

//获取最大列数

int colnum = row.getPhysicalNumberOfCells();

//打印行数和列数

//System.out.println(“rownum=”+rownum+”,colnum=”+colnum);

for (int i = 0; i<rownum; i++) {//遍历行数

row = sheet.getRow(i);

if(row !=null){

for (int j=0;j<colnum;j++){//遍历列

cellData = (String)getCellFormatValue(row.getCell(j));

//————

//前面参数是列,后面参数是行

String sss = CryptDESUtil.decodeDES(cellData);

Label newLabel = new Label(j,i,sss);//执行解密

newSheet.addCell(newLabel);

//————

}

}else{

break;

}

}

workbook.write();

workbook.close();

os.close();

}

System.out.println(“——–Success——–“);

}

//读取excel

public static Workbook readExcel(String filePath){

Workbook wb = null;

if(filePath==null){

return null;

}

String extString = filePath.substring(filePath.lastIndexOf(“.”));

InputStream is = null;

try {

is = new FileInputStream(filePath);

if(“.xls”.equals(extString)){

return wb = new HSSFWorkbook(is);

}else if(“.xlsx”.equals(extString)){

return wb = new XSSFWorkbook(is);

}else{

return wb = null;

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return wb;

}

public static Object getCellFormatValue(Cell cell){

Object cellValue = null;

if(cell!=null){

//判断cell类型

switch(cell.getCellType()){

case Cell.CELL_TYPE_NUMERIC:{

//判断cell是否为日期格式

if(DateUtil.isCellDateFormatted(cell)){

//转换为日期格式YYYY-mm-dd

cellValue = sdf.format(cell.getDateCellValue());

}else{

//数字

cellValue = String.valueOf(cell.getNumericCellValue());

}

break;

}

case Cell.CELL_TYPE_FORMULA:{

//判断cell是否为日期格式

if(DateUtil.isCellDateFormatted(cell)){

//转换为日期格式YYYY-mm-dd

cellValue = sdf.format(cell.getDateCellValue());

}else{

//数字

cellValue = String.valueOf(cell.getNumericCellValue());

}

break;

}

case Cell.CELL_TYPE_STRING:{

cellValue = cell.getRichStringCellValue().getString();

break;

}

default:

cellValue = “”;

}

}else{

cellValue = “”;

}

return cellValue;

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154060.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 精进 Quartz—Quartz大致介绍(一)

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,“任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。

    2022年2月25日
    57
  • Android端 WebP图片压缩与传输的一点探索

    Android端 WebP图片压缩与传输的一点探索简介直到4g时代,流量依然是宝贵的东西。而移动网络传输中,最占流量的一种载体:图片,成为了我们移动开发者不得不关注的一个问题。我们关注的问题,无非是图片体积和质量如何达到一个比较和谐的平衡,希望得到质量不错的图片同时体积还不能太大。走在时代前列的谷歌给出了一个不错的答案——WebP。WebP是一种图片文件格式,在相同的压缩指标下,webp的有损压缩能比jpg小25-34%。而在

    2025年5月25日
    1
  • laravel 多个项目共享SESSION

    laravel 多个项目共享SESSION

    2021年11月7日
    47
  • JavaScript高级程序设计学习总结一

    JavaScript高级程序设计学习总结一一,JavaScript的实现JavaScript和ECMAScript通常都被人认为是相同的含义,JavaScript的含义比ECMAScript规定要多的多。一个完整的的JavaScript实现应该由三个不同的部分组成。核心(ECMAScript的) 文档对象模型(DOM) 浏览器对象模型(BOM)二,ECMAScript中是由ECMA-262定义的,ECMASc…

    2022年8月22日
    7
  • java 刷屏器「建议收藏」

    java 刷屏器「建议收藏」本想做个聊天机器人,最终还是获取不了聊天信息,只能写了个刷屏器,仅供娱乐。importjava.awt.AWTException;importjava.awt.Robot;importjava.awt.Toolkit;importjava.awt.datatransfer.StringSelection;importjava.awt.event.KeyEvent;imp

    2022年5月31日
    27
  • 计算机-普林斯顿结构

    计算机-普林斯顿结构冯·诺伊曼结构,也称冯·诺伊曼模型或普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构。依据冯·诺伊曼结构设计出的计算机称做冯.诺依曼计算机,又称存储程序计算机。特点结构…

    2022年10月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号