使用POI设置导出的EXCEL锁定指定的单元格

注:要锁定单元格需先为此表单设置保护密码,设置之后此表单默认为所有单元格锁定,可使用setLocked(false)为指定单元格设置不锁定。

sheet.protectSheet("");//

    public static void WriteExcelByPoi(String fileData) throws IOException,
                                                               InvalidFormatException {
        try {
            InputStream in = new FileInputStream(fileData);

            Workbook workbook = new XSSFWorkbook(in);
            org.apache.poi.ss.usermodel.Sheet sheet = (org.apache.poi.ss.usermodel.Sheet)workbook.getSheetAt(1);
            sheet.protectSheet(""); //设置表单保护密码

            org.apache.poi.ss.usermodel.Row row = null;
            org.apache.poi.ss.usermodel.Cell cell = null;

            String cellValue = "132700002800";
            XSSFCellStyle alterableStyle = (XSSFCellStyle)workbook.createCellStyle(); //获取当前单元格的样式对象
            alterableStyle.setLocked(true);    //设定此单元格为锁定状态
             XSSFCellStyle nolockedStyle = (XSSFCellStyle)workbook.createCellStyle(); //获取当前单元格的样式对象
             nolockedStyle.setLocked(false);    //设定此单元格为非锁定状态

             String value = "非锁定";

            for (int i = 0; i < 5; i++) {
                System.out.println(" i =" + i);
                row = sheet.createRow(i);
                cell = row.createCell(0);
                cell.setCellValue(cellValue);
                cell.setCellStyle(alterableStyle);
                cell = row.createCell(1);
                cell.setCellValue(value);
                cell.setCellStyle(nolockedStyle);
            }

            in.close();

            FileOutputStream out = null;
            try {
                out = new FileOutputStream(fileData);
                workbook.write(out);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
时间: 2024-10-12 23:05:25

使用POI设置导出的EXCEL锁定指定的单元格的相关文章

设置导出的excel数据

/** * 设置导出的excel数据 * @param type $objPHPExcel * @param type $colModel * @param type $grid */public function setExcelData($objPHPExcel, $colModel, $grid){ $table = $this->model->_table; for ($i = 0, $t = 0; $i < count($colModel); $i++) { $label =

Excel表格如何保护单元格不被修改

Excel如何保护单元格不被修改  有时使用Excel时希望保护单元格不被修改,这可以叫做单元格的“写保护”即把光标定位在一个不允许输入数据的区域内时,是无论如何也无法在里面输入数据的.下面咱们就一起来试一试如何保护Excel单元格不被修改,步骤如下: 1.一般对于一个表格,标题的内容是不允许被修改,那么我们就开始将下面这个表格的标题区保护起来,但在选择时请大家注意,不要选择标题区,而应该用鼠标将用户编辑区选中.如图1所示: 2.点击“格式”菜单→“单元格→保护”标签,将窗口中的“锁定”复选框取

读取Excel文件中的单元格的内容和颜色

读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.Office.Interop.Excel;或者using Microsoft.Excel; string file = @"E:\test.xls"; //测试文件 Excel.Application excel = null; Excel.Workbook wkb = null; try {

C# 获取Excel中的合并单元格

C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这些合并单元格之后对这些单元格进行取消合并操作,还可以进行其他操作如设置格式等. 为了展示,这里我使用了一个模板Excel文件,它含有两个合并区域,如下图: 代码使用: 步骤1:实例化一个Workbook对象并加载Excel文档. Workbook workbook = new Workbook();

Excel用底纹突出单元格的数据给Excel单元格添加底纹效果

在表格中某些单元格的数据相对重要,需要突出显示,除了应用单元格样式外,还可以单独为单元格设置图案底纹,让其突出显示.(常见问题)excel中如何设置单元格的底纹怎样给EXCEL表格加底纹在EXCEL中对某个单元格设置25%灰色底纹怎么做Excel利用条件格式对包含公式的单元格突出显示如何更换Excel单元格中的底纹颜色 [解决方法,教程视频资料如下]资料来源:http://edu.51cto.com/course/15224.html 完整博客资料:http://blog.51cto.com/1

NPOI_winfrom导出Excel表格(合并单元格、规定范围加外边框、存储路径弹框选择)

1.导出 1 private void btn_print_Click(object sender, EventArgs e) 2 { 3 DataTable dtNew = new DataTable(); 4 5 dtNew.Columns.Add(new DataColumn("commodity_name", typeof(object))); 6 dtNew.Columns.Add(new DataColumn("specifications", type

ASP.NET 导出Excel时,某单元格内一部分文字加粗加下划线

一.简述 在项目中的某个导出Excel的功能就需要在某个单元格中使一部分文字加粗和加下划线. 二.内容 在这个导出Excel的功能里用到了 Microsoft.Office.Interop.Excel 这个类库. 然后操作单元格: Microsoft.Office.Interop.Excel.Range cells = (Microsoft.Office.Interop.Excel.Range)xlsWorkSheet.Cells; cells["1", "A"]

EXCEL如何新建自定义单元格以及样式怎么设置

虽然Excel中包含了很多内置的表格样式,但有些并不太让人满意.此时可以自定义表格样式.效果图如下(常见问题)Excel单元格自定义格式的知识和技巧excel如何自定义套用表格格式怎么新增并设置EXCEL单元格自定义显示内容格式自定义excel表格样式 excel清除自定义样式 [解决方法,教程视频资料如下]资料来源:http://edu.51cto.com/course/15224.html 完整资料:http://edu.51cto.com/lecturer/13162026.html 原文

Java用POI解析excel并获取所有单元格数据

1.导入POI相关jar包 org.apache.poi jar 2.代码示例 public List getAllExcel(File file, String tableName, String fname, String enterpriseId, String reportId, String projectId) throws FileNotFoundException, IOException, ClassNotFoundException, InstantiationExcepti