前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel 读取并解密

Excel 读取并解密

作者头像
全栈程序员站长
发布2022-09-15 08:17:43
6380
发布2022-09-15 08:17:43
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。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.cn/154060.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档