`

Excel 读取并解密

阅读更多
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;
}
}
分享到:
评论

相关推荐

    非常好用的MDB二进制数据库读取解密软件

    标题中的“非常好用的MDB二进制数据库读取解密软件”表明这是一款专注于处理MDB文件的专业工具,MDB是Microsoft Access数据库的默认文件格式。Access是微软开发的关系型数据库管理系统,广泛应用于数据存储和管理。...

    .NET windowform 实现excel导入导出加解密

    例如,你可以创建一个新的工作表,读取窗体中的数据,并将其写入到Excel表格中: ```csharp using OfficeOpenXml; FileInfo fileInfo = new FileInfo("output.xlsx"); ExcelPackage.LicenseContext = ...

    read_excel.zip_count5rr_encryption_python excel读取处理_python read_

    "read_excel.zip_count5rr_encryption_python excel读取处理_python read_"这个标题暗示了我们将讨论如何使用Python读取和处理加密的Excel文件。下面将详细介绍这个主题。 首先,我们要用到的库是`pandas`,它提供...

    加密解密Excel文件内的数据

    在这个场景中,我们关注的是如何使用C#编程语言来实现对Excel文件内的数据进行加密和解密。"加密解密Excel文件内的数据"这个项目,旨在提供一种方法,使得敏感或私密的Excel工作簿内容在未经授权的情况下无法被查看...

    PHP论坛源码-Excel 读取类 用户注册

    而Excel读取类则提供了对Excel数据的处理能力,可能是为了方便批量导入用户信息或者进行其他数据分析操作。 【描述】"PHP论坛源码、PHP论坛源码 php文件管理器 PHP类大全"指出除了论坛源码外,还有PHP文件管理器的...

    人事档案管理系统-解密版(用EXCEL做的_非常强大).rar

    本篇将详细介绍一款名为“人事档案管理系统-解密版(用EXCEL做的_非常强大).rar”的Excel程序,它以其强大的功能和易用性,成为了学习Excel编程和实际应用的优秀案例。 Excel,这个我们熟悉且常用的电子表格工具,...

    Android 加密解密文件 txt/excel文件

    可以使用第三方库,如Apache POI,来读取和写入excel文件,然后在其基础上进行加密和解密操作。 总的来说,Android中加密解密txt/excel文件涉及了Android编程、加密算法、文件操作和可能的第三方库使用。理解这些...

    对Excel进行加密 然后读取

    本篇文章将详细讲解如何使用Delphi编程语言对Excel文件进行加密,并在加密后如何正确地读取数据。 首先,我们需要理解Excel文件的加密机制。Excel提供了工作簿级别的密码保护,这种保护主要基于AES(Advanced ...

    易语言打开带密码的Excel

    6. **权限与安全**:使用密码保护Excel文件是一种常见的数据保护手段,但需要注意的是,任何编程方式的解密都可能存在被破解的风险。因此,在设计系统时,除了密码保护外,还应考虑其他的安全措施,如使用更复杂的...

    易语言打开带密码的Excel源码

    在易语言中,通常会依赖Windows API(应用程序接口)来处理更复杂的任务,例如读取受密码保护的Excel文件。API函数如`OpenMutex`、`CreateFile`、`CryptAcquireContext`、`CryptDeriveKey`、`CryptUnprotectData`等...

    python读取excel数据.pdf

    ### Python读取Excel数据知识点详解 #### 一、引言 在数据分析领域,Excel文件是一种常见的数据存储形式。为了能够高效地处理这类文件中的数据,Python社区开发了一系列强大的库,其中最为广泛使用的当属`pandas`...

    文件夹加密解密程序(很难找了)

    文件夹加密通常采用不同的加密算法,例如AES(高级加密标准)、RSA(公钥加密算法)或者Blowfish等,这些算法能够将文件夹内的数据转换成无法读取的形式,只有输入正确的密钥才能解密。因此,即使数据被非法获取,...

    php+excel_involved9xc_信息查询系统_excel_excel查询_php_

    "这暗示了开发人员可能使用了PHP的某些库(如PHPExcel或Spout)来读取、写入或操作Excel文件,以实现数据查询功能。系统的简易性和可编译性意味着它可能有一个直观的用户界面,并且源代码是开放的,无需解密即可查看...

    poi excel加密

    读取加密的Excel文件,我们需要使用`POIFSFileSystem`类来打开文件系统,并提供正确的密码。以下是一个简单的示例: ```java FileInputStream fis = new FileInputStream("encrypted_file.xls"); try { ...

    文件透明加解密源代码

    通常,这需要处理文件的二进制数据,并确保加解密算法与文件格式兼容。 5. 源代码分析与学习: 拥有“透明加解密源码”意味着可以深入研究其内部机制,了解如何利用minifilter驱动进行文件加解密。这对于学习驱动...

    java处理2003和2007Excel读写加密源码

    在Java编程环境中,处理2003和2007版本Excel文件的读写操作是一项常见的任务,尤其当涉及到加密的Excel文件时,这需要特殊的技术处理。2003版Excel使用的是BIFF8格式,而2007版及更高版本则采用Office Open XML...

    aspose-excel jar包

    2. **读取工作簿**:你可以打开并读取现有的Excel文件,获取工作簿、工作表和单元格的信息。 3. **编辑工作表**:添加、删除、复制和移动工作表,以及修改单元格的值、样式和公式。 4. **格式化**:应用各种格式,...

    易语言Excel表格加密源码

    5. **加密与解密过程**:在Excel表格加密源码中,需要定义一个加密函数和一个解密函数。加密函数将原始数据转换成密文,保存到Excel文件中;解密函数则负责将密文还原成原始数据。 6. **密码处理**:用户设定的密码...

    .net实现导入导出excel,带加密模板

    对于导入Excel数据,我们通常需要读取Excel文件中的单元格内容并将其转化为适当的数据结构,如DataTable或自定义对象列表。以EPPlus为例,可以创建一个`ExcelPackage`实例,打开Excel文件,然后遍历工作表中的每个...

Global site tag (gtag.js) - Google Analytics