精华内容
下载资源
问答
  • 下图中A列即为不能更改的区域。第一步:先选中整个工作表第二步:右键-设置单元格格式-保护-不勾选锁定第三步:选中需要保护的区域第四步:右键-设置单元格格式-保护-勾选锁定第五步:审阅-锁定单元格-设置密码,这...

    3cb0d92ec6c318de1ee668779b3871b6.png

    EXCEL如何保护一些数据,防止被更改呢?下图中A列即为不能更改的区域。

    第一步:先选中整个工作表

    ae9de9ad6b5edefb6a2696d723de31d0.png

    第二步:右键-设置单元格格式-保护-不勾选锁定

    62f2cd82c90ed8db15ce71eea7ecc491.png

    第三步:选中需要保护的区域

    00c050d462c055ee3e7b1cbd7baff49b.png

    第四步:右键-设置单元格格式-保护-勾选锁定

    4d620b02da8a6b2560b7144bfa5854ce.png

    第五步:审阅-锁定单元格-设置密码,这时候A列就被保护起来了

    69ff68a3f15c5032594d9c19a9430fc7.png

    第六步:双击A列中的被保护区域,会提示错误

    0d5fa533406f22335e2c8d2e93423f26.png

    第七步:解除保护:撤销工作表保护-输入密码,即可。

    23255617af2fac898553f736e7c5d936.png

    原文:Excel如何保护特定的数据不被更改?

    更多Excel技巧:我爱Excel网

    展开全文
  • 下图中A列即为不能更改的区域。第一步:先选中整个工作表第二步:右键-设置单元格格式-保护-不勾选锁定第三步:选中需要保护的区域第四步:右键-设置单元格格式-保护-勾选锁定第五步:审阅-锁定单元格-设置密码,这...

    因为界面及使用方法类似,本文使用WPS进行说明。

    EXCEL如何保护一些数据,防止被更改呢?下图中A列即为不能更改的区域。

    第一步:先选中整个工作表

    e94938e8f3f3fa672973bd3e14d4d308.png

    第二步:右键-设置单元格格式-保护-不勾选锁定

    502bd9018ad4d1198a38f5bb831f97ac.png

    第三步:选中需要保护的区域

    e3942c381d5573da75f7f5204d534106.png

    第四步:右键-设置单元格格式-保护-勾选锁定

    1bbfa9d227a4ea7ffaf47aedbb278814.png

    第五步:审阅-锁定单元格-设置密码,这时候A列就被保护起来了

    de324dcc78fc19e26c7dadf6d6ede352.png

    第六步:双击A列中的被保护区域,会提示错误

    3e036de2670ca74fcdada83fdddf1518.png

    第七步:解除保护:撤销工作表保护-输入密码,即可。

    0afee53717c1c81dd0854250084cbe6a.png

    原文:EXCEL/WPS如何保护特定的数据不被更改?-EXCEL/WPS技能-TING说

    展开全文
  • 最近在做一个导入导出的功能,导出后,用户修改部分列的值,然后导入更新。为了能够进行更新,必须对...问题来了,单纯用 ProtectSheet 并不行,还得设置单元格样式IsLocked。 IWorkbook hssfworkbook = new HS...

    最近在做一个导入导出的功能,导出后,用户修改部分列的值,然后导入更新。为了能够进行更新,必须对某些列进行限制修改。

    用的是NPOI控件,hssfworkbook.GetSheetAt(0).ProtectSheet("密码") 进行上锁。

    问题来了,单纯用 ProtectSheet  并不行,还得设置单元格样式IsLocked

    IWorkbook hssfworkbook = new HSSFWorkbook(file);

    //锁定样式

     ICellStyle cellstyleLock = hssfworkbook .CreateCellStyle();

      cellstyleLock .IsLocked = true;//上锁
      

    //解除锁定样式

     ICellStyle cellstyleUnLock = hssfworkbook .CreateCellStyle();

       cellstyleUnLock.IsLocked = false;//解锁

    设定好样式后,然后再遍历单元格的时候,赋值样式

      ICell cellItem = row.GetCell(index);//获取行内单元格
       if (cellItem == null) cellItem = row.CreateCell(index);//不存在就创建单元格
       

    不允许修改,设置样式:

     cellItem.CellStyle = cellstyleLock;//锁定

     

    允许修改,设置样式:

       cellItem.CellStyle = cellstyleUnLock ;//接触锁定

     

    展开全文
  • 创建导出Excel工具类 package com.jlpt.utils; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss...

     创建导出Excel工具类

    package com.jlpt.utils;
    
    import org.apache.poi.hssf.usermodel.*;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.apache.poi.ss.usermodel.Font;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.RegionUtil;
    
    import java.util.Arrays;
    
    
    public class ExcelUtil {
    
        /**
         * @param sheetName
         * @param ProhibitToEdit 是否禁止编辑,true则生成的表无法编辑,内容高亮显示,若允许某列可以编辑,可配置enableChange
         * @param enableChange   禁止修编辑,允许编辑的列;配置后显示可编辑并取消高亮
         * @param title          标题
         * @param calWidth       行宽,若传值为null或长度小于标题长度,则自动填充行宽15字符长度
         * @param values         内容
         * @return
         */
        public static HSSFWorkbook getHSSFWorkbook(String sheetName, boolean ProhibitToEdit, int[] enableChange, String[] title,int[] calWidth, String[][] values) {
    
            // 创建一个HSSFWorkbook,对应一个Excel文件
            HSSFWorkbook wb = new HSSFWorkbook();
    
            // 在workbook中添加一个sheet,对应Excel文件中的sheet
            HSSFSheet sheet = wb.createSheet(sheetName);
    
            // 在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
            HSSFRow row = null;
    
            // 创建单元格,并设置值表头 设置表头居中
    
            //单元格样式
            HSSFCellStyle style = wb.createCellStyle();
            style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
            style.setBorderBottom(CellStyle.BORDER_THIN); // 下边框
            style.setBorderLeft(CellStyle.BORDER_THIN);// 左边框
            style.setBorderTop(CellStyle.BORDER_THIN);// 上边框
            style.setBorderRight(CellStyle.BORDER_THIN);// 右边框
            style.setWrapText(true);//自动换行
    
            HSSFCellStyle lockStyle = wb.createCellStyle();//列未锁定样式
            lockStyle.setLocked(false);   //设置列的锁定状态为未锁定
            lockStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
            lockStyle.setBorderBottom(CellStyle.BORDER_THIN); // 下边框
            lockStyle.setBorderLeft(CellStyle.BORDER_THIN);// 左边框
            lockStyle.setBorderTop(CellStyle.BORDER_THIN);// 上边框
            lockStyle.setBorderRight(CellStyle.BORDER_THIN);// 右边框
            lockStyle.setWrapText(true);//自动换行
            //字体样式
            Font fontStyle = wb.createFont(); // 字体样式
            fontStyle.setBoldweight((short) 4); // 加粗
            fontStyle.setFontName("黑体"); // 字体
            fontStyle.setFontHeightInPoints((short) 11); // 大小
            //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
            CellRangeAddress cra = new CellRangeAddress(0, 0, 0, 14);
            sheet.addMergedRegion(cra);
            RegionUtil.setBorderBottom(1, cra, sheet, wb); // 下边框
            RegionUtil.setBorderLeft(1, cra, sheet, wb); // 左边框
            RegionUtil.setBorderRight(1, cra, sheet, wb); // 有边框
            RegionUtil.setBorderTop(1, cra, sheet, wb); // 上边框
    
            //声明列对象
            HSSFCell cell = null;
            HSSFCell headercell = null;
            //标头样式
            HSSFRow row1 = sheet.createRow(0);
            HSSFCellStyle headerStyle = style;
            //Height的单位是1/20个点
            row1.setHeight((short) 600);
            headercell = row1.createCell(0);
            headercell.setCellValue("用户信息列表");
            headercell.setCellStyle(headerStyle);
    
            int [] reallyWidth=new int[title.length];
            Arrays.fill(reallyWidth,15);//设置默认列宽15字符长度(英)
            //设置列宽
            if(calWidth!=null){
                if(calWidth.length<title.length){
                    reallyWidth=Arrays.copyOf(calWidth,calWidth.length);
                }else{
                    reallyWidth=calWidth;
                }
            }
    
            //标题
            row = sheet.createRow(1);
            //创建标题
            for (int i = 0; i < title.length; i++) {
                //设置列宽度(参数的单位是1/256个字符宽度)
                sheet.setColumnWidth(i, reallyWidth[i] * 256);
                HSSFCellStyle titleStyle = style;
                titleStyle.setFont(fontStyle);
                cell = row.createCell(i);
                cell.setCellValue(title[i]);
                cell.setCellStyle(titleStyle);
            }
    
            //创建内容
            if (ProhibitToEdit) {//禁止修改
                sheet.protectSheet("123456");
                style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);  //填充单元格
                style.setFillForegroundColor(HSSFColor.LIME.index);    //填蓝色
                HSSFPalette palette = wb.getCustomPalette();
                palette.setColorAtIndex(HSSFColor.LIME.index, (byte) 221, (byte) 235, (byte) 247);
                if (enableChange != null) {//禁止修改后,允许编辑的列
    
                    for (int i = 0; i < values.length; i++) {
                        row = sheet.createRow(i + 2);
                        for (int j = 0; j < values[i].length; j++) {
                            //将内容按顺序赋给对应的列对象
                            row.createCell(j).setCellValue(values[i][j]);
                            row.getCell(j).setCellStyle(style);
                        }
                        for (int columns : enableChange) {
                            row.getCell(columns).setCellStyle(lockStyle);
                        }
                    }
                } else {
                    for (int i = 0; i < values.length; i++) {
                        row = sheet.createRow(i + 2);
                        for (int j = 0; j < values[i].length; j++) {
                            //将内容按顺序赋给对应的列对象
                            row.createCell(j).setCellValue(values[i][j]);
                            row.getCell(j).setCellStyle(style);
                        }
                    }
                }
            } else {
                for (int i = 0; i < values.length; i++) {
                    row = sheet.createRow(i + 1);
                    for (int j = 0; j < values[i].length; j++) {
                        //将内容按顺序赋给对应的列对象
                        row.createCell(j).setCellValue(values[i][j]);
                    }
                }
            }
            return wb;
        }
    }
    

    controller控制器代码

        //批量导出
        @RequestMapping("/userExport")
    
        public String userExport(String orgId, HttpServletResponse response, HttpServletRequest request) {
            //获取数据
            List<UserInfo> userList= userService.getUserListByOrgId(orgId);
            int userNumber = userList.size();
    
            //excel标题
            String[] title = {"用户名", "真实姓名", "密码", "性别", "手机号","电话","邮箱","单位编码","用户编码","工作证号","职务","科室/处室","绑定IP","所在部门"};
    
            //excel文件名
            String fileName = "用户信息表" + System.currentTimeMillis() + ".xls";
    
            //sheet名
            String sheetName = "用户信息表";
    
            String [][] content=new String[userNumber][];
            for (int i = 0; i < userList.size(); i++) {
                content[i] = new String[title.length];
                UserInfo userInfo = userList.get(i);
    
                content[i][0] = userInfo.getUserName();
                content[i][1] = userInfo.getRealName();
                content[i][2] = userInfo.getPassword();
                content[i][3] = userInfo.getSex()=="0"?"男":"女";
                content[i][4] = userInfo.getCellPhone();
                content[i][5] = userInfo.getPhone();
                content[i][6] = userInfo.getEmail();
                content[i][7] = userInfo.getOrgCode();
                content[i][8] = userInfo.getUserCode();
                content[i][9] = userInfo.getCardId();
                content[i][10] = userInfo.getDuty();
                content[i][11] = userInfo.getDepartment();
                content[i][12] = userInfo.getIp();
            }
            //设置列宽
            int[] calWidth=new int[]{8,16,12,12,6,14,14,30,12,12,20,12,12,30,10};
            //创建HSSFWorkbook
            HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName,false,null, title,calWidth, content );
    
            //响应到客户端
            try {
                this.setResponseHeader(response, fileName);
                OutputStream ops = response.getOutputStream();
                wb.write(ops);
                ops.flush();
                ops.close();
            } catch (Exception e) {
                e.printStackTrace();
    
            }
    
            return null;
        }
    //发送响应流方法
        public void setResponseHeader(HttpServletResponse response, String fileName) {
            try {
                try {
                    fileName = new String(fileName.getBytes(),"ISO8859-1");
                } catch (UnsupportedEncodingException e) {
    
                    e.printStackTrace();
                }
                response.setContentType("application/octet-stream;charset=ISO8859-1");
                response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
                response.addHeader("Pargam", "no-cache");
                response.addHeader("Cache-Control", "no-cache");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }

     

    展开全文
  • 后台一个导出excel的功能 发现excel在中文环境下不能完美设置行宽的问题 参考文档 maatwebsite/excel 思路 excel设置行宽的默认的是估算行宽, 现在设置成精确计算 字体默认的是calibri.ttf, 现在修改成其他字体 ...
  • EasyPoi导出excel不能设置序号的功能

    千次阅读 2020-06-29 17:47:05
    我做一个Excel文档导出多个sheet页,开始我用的poi,但是写的很多,最后在网上查有easypoi是poi的封装体,代码写的少,功能比较多,我用的是没有模板的,文档上有序号,我就加上了序号了,但是序号加上就报空,当我们...
  • 一、word默认字体字号:word文档找字体设置设置默认值即可 二、EXCEL默认的字体为等线11号,更改新建文件为其他字体,亲测有效。 方法/步骤 1 点击WIN键,找到EXCEL2016,点击打开,选择新建空白工作簿。...
  • 求大神告知,如何破解Excel的只读密码?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/11.gif][/img]
  • 最近下载了一份xlsm格式的Excel,想对其进行修改编辑,奈何却发现无法复制编辑里面的文字,到底该如何破解呢?我花了20多分钟,打开了20多个网页,花了30分钟,终于破解了Excel中xlsm设置的密码了,现在把方法分享...
  • Excel文件打开之后想要修改单元格里面的数据,可是发现单元格被锁定保护,无法编辑单元格,只有将保护撤销掉才能修改单元格内容。 打开okfone EXCEL解密大师打开,点击【解除限制】 将Excel文件添加到里面,设置...
  • 首先全选,右键点击设置单元格格式-保护-把锁定和...选择要保护的几列-设置单元格格式-保护-锁定的勾都加上,意思就是给你选择的几列予以锁定,这样才能进行保护。然后进入工具里保护选项,选择保护工作表确定就可以了
  • 打开带有宏的Excel文件,有时会提示更改宏的安全性以使用文档,但从菜单修改不能生效。 即在此打开文档或调用宏代码的时候还是会弹出提示,无法使用宏。分享解决办法,
  • Excel只能输入不能修改

    千次阅读 2015-03-16 15:07:29
    一、选择需要加密的单元格,右键→设置单元格格式→保护→锁定; 二、按Alt+F11键进入VBE环境,在左侧的相应sheet名称上(如sheet1)右键→查看代码; 三、选择Worksheet的SelectionChange事件,写入如下代码: ...
  • Microsoft.Office.Interop.Excel.Range titleRange = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[2, 2]); titleRange.Interior.Color = ... Color参数或返回值的型在内的方法叫出IDispatch中不能
  • excel设置格式

    千次阅读 2021-07-01 20:40:18
    日期的更改格式(不许是在日期格式上的数字进行更改不能直接将数值更改为日期) 百分比(可以设置小数位置,会自动成100再%) 文本 自定义 1 2 3 4 5 6 对齐 1 上下左右,居中 1 字体 1 更改字体:宋体 加粗 设置...
  • NPOI读取Excel设置单元格格式为数值生效问题
  • Microsoft Office Excel 不能访问文件

    万次阅读 2014-04-01 15:55:58
    在VS2012 中写了一个修改EXCEL内部信息,然后再读的东西,但在Windows Server 2008上发布后遇到个问题,EXCEL文件确实存在,但.net调用的EXCEL不能打开这个EXCEL文件,代码执行到打开文件的时候报错,抛出异常如下...
  • 如何让Excel输入数据后自动保护,不能修改
  • jeecg导出excel设置样式

    千次阅读 2019-06-19 11:39:27
    jeecg导出excel设置样式jeecg导出excel设置样式 jeecg导出excel设置样式 今天工作中遇到个问题,在使用jeecg框架的时候使用自动生成代码导出excel文档,需要给添加序号和边框。 首先来看一下自动生成的导出代码 /** ...
  • 如何使用Apache POI设置Excel的公式字段 1. 概述 在本文中,我们将通过一个简单的示例来演示如何使用Apache POI在Microsoft Excel电子表格中设置公式字段 2. Apache POI Apache POI是一个流行的开源Java库,它提供了...
  • NPOI设置Excel保护

    2014-10-16 17:31:00
    有时,我们可能需要某些单元格只读,如在做模板时,模板中的数据是不能随意让别人改的。在Excel中,可以通过“审阅->保护工作表”来完成,如下图:那么,在NPOI中有没有办法通过编码的方式达到这一效果呢?答案是...
  • 小编教大家如何在Excel 2013中设置密码保护表格数据不能修改的方法。 1、打开Excel表格,在功能选区中选择“审阅”—“保护工作表”。 2、在弹出的“保护工作表”对话框中进行取消保护所需密码的设置,输入你想...
  • JAVA导出EXCEL实现

    万次阅读 多人点赞 2019-07-31 18:39:28
    JAVA导出EXCEL实现
  • 网上下载的Excel文件不能编辑,可能是因为文件被设置了限制密码,限制其他人对文件进行修改,想要解决这个问题可以让作者将限制密码取消,也可以使用一些Excel解密软件将限制解除也是可以的。 解密软件一般也可以...
  • 小白的总结,大神勿喷;...2、设置可编辑,导出后发现所有单元格均可编辑; 原因:createCell();创建单元格后,单元格默认是锁定状态;protectSheet("密码");保护工作表是保护所有锁定的单元格;...
  • 但是如果用户电脑开启宏,意味着生成的excel中vbs脚本失效。操作步骤如下: 点击开发工具,启动宏,如果wps的话开启需要安装插件 点击根据步骤1,2,3将vbs代码复制黏贴进去,最后记得要加密整个工作簿 ...
  • 设置EXCEL的默认打印机

    千次阅读 2015-05-26 16:44:18
    系统设置了一个默认打印机,但在EXCEL有些人喜欢用其它的打印机做默认项,这个可以通过EXCEL的workbook的事件来实现 Private Sub Workbook_BeforePrint(Cancel As Boolean) Application.ActivePrinter = ...
  • C# 设置Excel 常用属性

    千次阅读 2010-08-24 23:02:00
    *1.创建Excel对象  eole=CREATEOBJECT('Excel.application') ...设置第3个工作表为激活工作表  eole.Worksheets("sheet1").Activate * 4.打开指定工作簿  eole.Workbooks.a
  • 在其他图表小三角形下拉菜单中,点击所有图标类型,在插入图表窗口中的第一个“模板”菜单中即可找到之前保存的我的模板文件,点击该图标即可插入相同样式的图表,这里注意新插入的图表标题有些一致需要修改一下:...
  • 地址: ... 使用ActiveX无法创建对象,使用ActiveX交互excel出现问题 ...下面这个代码,放在一个记事本中,就可以实现,为什么我把他放在VS中就不能实现了呢?说是var oXL = new ActiveXObject("Excel.Ap

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,324
精华内容 22,929
关键字:

如何设置excel不能修改