1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java使用poi实现excel保护工作表实例代码(支持.xls和.xlsx)

java使用poi实现excel保护工作表实例代码(支持.xls和.xlsx)

时间:2023-02-23 07:06:43

相关推荐

java使用poi实现excel保护工作表实例代码(支持.xls和.xlsx)

java使用poi实现excel保护工作表,支持.xls和.xlsx类型的excel,代码如下:

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

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

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

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**

* <p>类描述:保护工作表 </p>

* <p>创建人:wanghonggang </p>

* <p>创建时间:8月13日 下午3:14:40 </p>

* 所需引用jar包:poi和poi-ooxml

*/

public class PoiUtil {

//测试

public static void main(String[] args) {

try {

lockExcel("E:\\test\\test.xlsx",0,"123");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

*

* <p>方法描述:保护表格 TODO</p>

* <p>创建人: wanghonggang </p>

* <p>创建时间: 8月13日 下午4:12:03 </p>

* <p>修改记录:</p>

* @param excelPath excel文件路径

* @param sheetIndex excel表序号,从0开始

* @param password 加密密码

* @throws Exception

* void

*/

public static void lockExcel(String excelPath,int sheetIndex,String password) {

//判断文件路径是否正确

if(null != excelPath && !excelPath.isEmpty()){

InputStream xlsFile=null;

XSSFWorkbook xwb=null;

HSSFWorkbook hwb=null;

FileOutputStream os=null;

try{

//文件流

xlsFile = new FileInputStream(excelPath);

//判断是否为xlsx文件

boolean is_Xlsx=isXlsx(excelPath);

//xlsx文件使用XSSF前缀处理类,否则使用HSSF前缀处理类

if(is_Xlsx){

//读取工作簿

xwb = new XSSFWorkbook(xlsFile);

//获取sheet数量

//wb.getNumberOfSheets();

//读取工作表

XSSFSheet sheet = xwb.getSheetAt(sheetIndex);

//sheet添加保护代码

sheet.protectSheet(password);

//输出结果excel

os = new FileOutputStream(excelPath);

xwb.write(os);

}else{

//读取工作簿

hwb = new HSSFWorkbook(xlsFile);

//获取sheet数量

//wb.getNumberOfSheets();

//读取工作表

HSSFSheet sheet = hwb.getSheetAt(sheetIndex);

//sheet添加保护代码

sheet.protectSheet(password);

//输出结果excel

os = new FileOutputStream(excelPath);

hwb.write(os);

}

}catch(FileNotFoundException e1){

}catch(IOException e2){

}finally{

//关闭

try {

if(null != os) os.close();

if(null != xwb) xwb.close();

if(null != hwb) hwb.close();

if(null != xlsFile) xlsFile.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}else{

System.out.println("文件路径不正确!");

}

}

/**

*

* <p>方法描述:判断是否为.xlsx后缀文件 TODO</p>

* <p>创建人: wanghonggang </p>

* <p>创建时间: 8月13日 下午3:38:35 </p>

* <p>修改记录:</p>

* boolean

* true 是xlsx

* false 不是xlsx

*/

public static boolean isXlsx(String excelPath){

return ( null != excelPath && !excelPath.isEmpty() && excelPath.toLowerCase().endsWith(".xlsx"))?true:false;

}

}

maven所需依赖如下:

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>4.1.0</version>

</dependency>

<dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi-ooxml</artifactId>

<version>4.1.0</version>

</dependency>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。