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是Microsoft Access数据库的默认文件格式。Access是微软开发的关系型数据库管理系统,广泛应用于数据存储和管理。...
例如,你可以创建一个新的工作表,读取窗体中的数据,并将其写入到Excel表格中: ```csharp using OfficeOpenXml; FileInfo fileInfo = new FileInfo("output.xlsx"); ExcelPackage.LicenseContext = ...
"read_excel.zip_count5rr_encryption_python excel读取处理_python read_"这个标题暗示了我们将讨论如何使用Python读取和处理加密的Excel文件。下面将详细介绍这个主题。 首先,我们要用到的库是`pandas`,它提供...
在这个场景中,我们关注的是如何使用C#编程语言来实现对Excel文件内的数据进行加密和解密。"加密解密Excel文件内的数据"这个项目,旨在提供一种方法,使得敏感或私密的Excel工作簿内容在未经授权的情况下无法被查看...
而Excel读取类则提供了对Excel数据的处理能力,可能是为了方便批量导入用户信息或者进行其他数据分析操作。 【描述】"PHP论坛源码、PHP论坛源码 php文件管理器 PHP类大全"指出除了论坛源码外,还有PHP文件管理器的...
本篇将详细介绍一款名为“人事档案管理系统-解密版(用EXCEL做的_非常强大).rar”的Excel程序,它以其强大的功能和易用性,成为了学习Excel编程和实际应用的优秀案例。 Excel,这个我们熟悉且常用的电子表格工具,...
可以使用第三方库,如Apache POI,来读取和写入excel文件,然后在其基础上进行加密和解密操作。 总的来说,Android中加密解密txt/excel文件涉及了Android编程、加密算法、文件操作和可能的第三方库使用。理解这些...
本篇文章将详细讲解如何使用Delphi编程语言对Excel文件进行加密,并在加密后如何正确地读取数据。 首先,我们需要理解Excel文件的加密机制。Excel提供了工作簿级别的密码保护,这种保护主要基于AES(Advanced ...
6. **权限与安全**:使用密码保护Excel文件是一种常见的数据保护手段,但需要注意的是,任何编程方式的解密都可能存在被破解的风险。因此,在设计系统时,除了密码保护外,还应考虑其他的安全措施,如使用更复杂的...
在易语言中,通常会依赖Windows API(应用程序接口)来处理更复杂的任务,例如读取受密码保护的Excel文件。API函数如`OpenMutex`、`CreateFile`、`CryptAcquireContext`、`CryptDeriveKey`、`CryptUnprotectData`等...
### Python读取Excel数据知识点详解 #### 一、引言 在数据分析领域,Excel文件是一种常见的数据存储形式。为了能够高效地处理这类文件中的数据,Python社区开发了一系列强大的库,其中最为广泛使用的当属`pandas`...
文件夹加密通常采用不同的加密算法,例如AES(高级加密标准)、RSA(公钥加密算法)或者Blowfish等,这些算法能够将文件夹内的数据转换成无法读取的形式,只有输入正确的密钥才能解密。因此,即使数据被非法获取,...
"这暗示了开发人员可能使用了PHP的某些库(如PHPExcel或Spout)来读取、写入或操作Excel文件,以实现数据查询功能。系统的简易性和可编译性意味着它可能有一个直观的用户界面,并且源代码是开放的,无需解密即可查看...
读取加密的Excel文件,我们需要使用`POIFSFileSystem`类来打开文件系统,并提供正确的密码。以下是一个简单的示例: ```java FileInputStream fis = new FileInputStream("encrypted_file.xls"); try { ...
通常,这需要处理文件的二进制数据,并确保加解密算法与文件格式兼容。 5. 源代码分析与学习: 拥有“透明加解密源码”意味着可以深入研究其内部机制,了解如何利用minifilter驱动进行文件加解密。这对于学习驱动...
在Java编程环境中,处理2003和2007版本Excel文件的读写操作是一项常见的任务,尤其当涉及到加密的Excel文件时,这需要特殊的技术处理。2003版Excel使用的是BIFF8格式,而2007版及更高版本则采用Office Open XML...
2. **读取工作簿**:你可以打开并读取现有的Excel文件,获取工作簿、工作表和单元格的信息。 3. **编辑工作表**:添加、删除、复制和移动工作表,以及修改单元格的值、样式和公式。 4. **格式化**:应用各种格式,...
5. **加密与解密过程**:在Excel表格加密源码中,需要定义一个加密函数和一个解密函数。加密函数将原始数据转换成密文,保存到Excel文件中;解密函数则负责将密文还原成原始数据。 6. **密码处理**:用户设定的密码...
对于导入Excel数据,我们通常需要读取Excel文件中的单元格内容并将其转化为适当的数据结构,如DataTable或自定义对象列表。以EPPlus为例,可以创建一个`ExcelPackage`实例,打开Excel文件,然后遍历工作表中的每个...