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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 详述ViewState用法

    详述ViewState用法与刚接触ASP.NET页面的开发人员交谈时,他们通常向我提出的第一个问题就是:“那个ViewState到底是什么?”他们的语气中流露出的那种感觉,就象我来到一家异国情调的餐馆,侍者端上一道我从未见过的菜肴时的那种感觉-既疑惑不解,又充满好奇。但肯定有人认为它不错,否则就不会提供了。所以,我会先尝一尝,或许会喜欢上它,尽管它看上去的确很古怪!对于ViewState也是如此,但是如果适应了它的风格,…

    2022年7月21日
    7
  • Laravel Form-builder使用

    Laravel Form-builder使用

    2021年10月21日
    118
  • 火山图标记基因_火山地形图

    火山图标记基因_火山地形图现在很多文章会要求火山图中显示某一个基因名称,或者是某一些基因的名称,这时候我们应该怎么做呢?很多人会选择使用AI或者PS来做,在这里我介绍的是,如何用R绘制这样的图加载R包library(ggpubr)library(ggthemes)如果没有安装,可以使用下面的代码进行安装install.packages(‘ggthemes’)install.packages(‘ggpubr’)…

    2022年10月21日
    0
  • window 启动tomcat闪退 查看日志方法

    window 启动tomcat闪退 查看日志方法window启动tomcat闪退查看日志方法找到bin下面的startup.bat用文本方式打开找到末尾start改为run然后打开cmd窗口cd到tomcatbin路径执行startup.bat下图本来该报错会闪退,catalina日志文件也没记录该报错,导致我们看不到报错信息,设置后可清晰看到报错原因,端口号超出范围,改小就行了…

    2022年5月29日
    58
  • 苹果x充电慢是什么原因_iPhone 12支持15W MagSafe无线充电,未来苹果手机的充电会发生什么?_充电器…

    2020-10-2122:44:400点赞0收藏0评论2020年由于一些特殊的原因导致一切似乎都和平时不一样了,所有的发布会都改成了线上,而备受关注的苹果也将发布会转移到了线上并采用录播的形式播出,从WWDC2020开始,我们就看到了一个不一样的线上发布会。众所周知,每年的秋季苹果都会发布新iPhone。在2020年9月份的苹果发布会上我们只见到了新iPad和新的AppleWatch发布,有且…

    2022年4月7日
    59
  • DEVC怎么建工程「建议收藏」

    DEVC怎么建工程「建议收藏」1.DEVC建工程1.1新建项目打开文件,选择新建项目ConsoleApplication(控制台程序),输入项目名,选择保存路径。(单独建一个文件夹存放)项目建成功后,打开项目管理,看到

    2022年8月5日
    4

发表回复

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

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