精华内容
下载资源
问答
  • HSSF opi: excel中设置某列不可编辑

    千次阅读 2017-02-27 17:37:52
    HSSF opi: excel中设置某列不可编辑   原理: 使用保护工作表的方式:  excel中默认所有列都为选中状态,而保护工作表时保护的是锁定状态的。因此,要设置某列不可编辑的实现方式如下:  1)、将要设置为...
    
    
    HSSF opi: excel中设置某列不可编辑
     
    原理:
    使用保护工作表的方式:
      excel中默认所有列都为选中状态,而保护工作表时保护的是锁定状态的列。因此,要设置某列不可编辑的实现方式如下:
      1)、将要设置为不可编辑的列的锁定状态改为未锁定。
      2)、保护工作表。

    代码:
    String filePath = physicalDeploymentPath+File.separator+"Excel"+File.separator+excelName+".xls";
                OutputStream os = new FileOutputStream(filePath);
                HSSFWorkbook book = new HSSFWorkbook();
                
                HSSFCellStyle cellStyle = book.createCellStyle();
            cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            cellStyle.setFillForegroundColor((short) 40);
                
                HSSFCellStyle canEditStyle = book.createCellStyle();
                canEditStyle.setLocked(false);   //设置列的锁定状态为未锁定
                for (ExportExcel ee : lstExcel) {
                      HSSFSheet sheet = book.createSheet(ee.getCategory().getName());
                      HSSFRow row = sheet.createRow(0);
    //                row.setRowStyle(bStyle);
                      // 列头
                      for (int i = 0; i < exportTitleNameList.size(); i++) {
                            row.createCell(i).setCellValue(exportTitleNameList.get(i).toString());
                      }
                      // 列宽
    //                for (int i = 0; i < exportTitleNameList.size(); i++) {
                      sheet.setColumnWidth(0, (short) ( 50 * 250 ) );
                      sheet.setColumnWidth(1, (short) ( 50 * 160 ) );
                      sheet.setColumnWidth(2, (short) ( 50 * 60 ) );
                      sheet.setColumnWidth(3, (short) ( 50 * 60 ) );
                      sheet.setColumnWidth(4, (short) ( 50 * 160 ) );
                      sheet.setColumnWidth(5, (short) ( 50 * 160 ) );
                      sheet.setColumnWidth(6, (short) ( 50 * 60 ) );
    //                }
                      
                      String[] list = new String[ee.getTypeLst().size()];
                      int x = 0;
                      for(EntityType et:ee.getTypeLst()){
                            list[x] = et.getSubType();
                            x++;
                      }
                      Map<String, String> stateNames = new HashMap<String, String>();
                      stateNames.put("CHECKIN", "检入");
                      stateNames.put("CHECKOUT", "检出");
                      stateNames.put("RELEASE", "发布");
                      int j = ee.getLstDocs().size();
                      for (int i = 0; i < j; i++) {
                            Document doc = ee.getLstDocs().get(i);
                            String state = "";
                            DocumentRevision docrev = doc.getCurrentRevision();
                            if ((doc.getState().name().equals("EDIT") || doc.getState().name().equals("RELEASE")) && docrev.getStatus() != null) {
                                  state = stateNames.get(docrev.getStatus().name());
                            } else {
                                  state = stateNames.get(doc.getState().name());
                            }
                            row = sheet.createRow(i+1);
                            row.createCell(0).setCellValue(doc.getName());
                            row.createCell(1).setCellValue(doc.getKeyword());
                            row.createCell(2).setCellValue(state);
                            row.createCell(3).setCellValue(doc.getDocumentType().getSubType());
                            row.createCell(4).setCellValue(doc.getOrganizationUnit());
                            row.createCell(5).setCellValue(doc.getCurrentRevision().getRemark());
                            row.createCell(6).setCellValue(doc.getCurrentRevision().getRevision());
                            //以下列可以编辑
                            row.getCell(1).setCellStyle(canEditStyle);
                            row.getCell(4).setCellStyle(canEditStyle);
                            row.getCell(5).setCellStyle(canEditStyle);
                      }
                      
                      //创建空的列和行,使可编辑
                      for(int i=j;i<j+2000;i++){
                            row = sheet.createRow(i+1);
                            row.createCell(0);
                            row.createCell(1);
                            row.createCell(2);
                            row.createCell(3);
                            row.createCell(4);
                            row.createCell(5);
                            row.createCell(6);
                            //以下列可以编辑
                            row.getCell(1).setCellStyle(canEditStyle);   //将未锁定样式添加至要设置为不可编辑的列。
                            row.getCell(4).setCellStyle(canEditStyle);
                            row.getCell(5).setCellStyle(canEditStyle);
                      }
                      
                      // 生成下拉列表
                      //从第2行第5列开始,到第ee.getLstDocs().size()+1行第5列有效
                      CellRangeAddressList regions = new CellRangeAddressList(1,j+2000 , 3, 3);//ee.getLstDocs().size()
                      
                      // 生成下拉框内容
                      DVConstraint constraint = DVConstraint.createExplicitListConstraint(list);
                      
                      // 绑定下拉框和作用区域
                      HSSFDataValidation data_validation = new HSSFDataValidation(regions, constraint);
                      
                      // 对sheet页生效
                      sheet.addValidationData(data_validation);
                      //设置密码保护文档不可以编辑,括号内是密码
                      sheet.protectSheet(new Date().toString());    //保护工作表

    展开全文
  • 首先全选,右键点击设置单元格格式-保护-把锁定和...选择要保护的几列-设置单元格格式-保护-锁定的勾都加上,意思就是给你选择的几列予以锁定,这样才能进行保护。然后进入工具里保护选项,选择保护工作表确定就可以了
     
    
    首先全选,右键点击设置单元格格式-保护-把锁定和隐藏的勾都去掉,就是不要让它锁定,然后确定。
    选择要保护的几列-设置单元格格式-保护-锁定的勾都加上,意思就是给你选择的几列予以锁定,这样才能进行保护。然后进入工具里保护选项,选择保护工作表确定就可以了
    展开全文
  •  //设置某列(A1举例)为时间格式  Style st = cell["A1"].GetStyle();  st.Custom = "yyyy-MM-dd";  cell["A1"].SetStyle(st);  cell.ImportDataTable(dt, true, 0, 0);  try  {  wk.Save(url);...

            //url:文件保存路径

            // dt:数据源DataTable 

            private void GetDataDownLoad(string url, DataTable dt)
            {

                Workbook wk = new Workbook();
                wk.Worksheets.Clear();
                Worksheet sheet = wk.Worksheets.Add("Sheet页名称");
                Cells cell = sheet.Cells;

                 //设置某列(A1举例)为时间格式

                Style st = cell["A1"].GetStyle();
                st.Custom = "yyyy-MM-dd";
                cell["A1"].SetStyle(st);

                cell.ImportDataTable(dt, true, 0, 0);
                try
                {
                    wk.Save(url);
                    MessageBox.Show("导出成功!", "提示");
                    return;
                }
                catch (Exception)
                {
                    MessageBox.Show("导出失败!", "提示");
                    return;
                }
            }

    展开全文
  • 无意发现了Spire.XLS for Java这个java操作excel的组件。它可以很方便的操作EXCEL文件, 官网地址:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html 同时他也有自己的帮...

      因工作需要,一直在摸索使用java代码操作Excel文件的方式,之前一直使用POI的方式在进行读写,代码冗长,不易维护。无意中发现了Spire.XLS for Java 这个java操作excel的组件。它可以很方便的操作EXCEL文件,

    官网地址:https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html

    同时他也有自己的帮助文档,虽说个人觉得帮助文档写的不够详细,但是仔细研究一下、查看源码还是大概可以完成一些简单的功能。

         该组件包可以通过maven仓库下载:

        <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <name>e-iceblue</name>
                <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
            </repository>
        </repositories>
    
    
            <dependency>
                <groupId>e-iceblue</groupId>
                <artifactId>spire.xls.free</artifactId>
                <version>2.2.0</version>
            </dependency>

      首先体验最简单的功能,用JAVA代码对EXCEL表格里的一列或多列进行删除,

    /***
         * 删除不需要的列,保留需要的“峰值流出流速(Mbit/s)等需要的信息”
         */
        public static void deleteOLTCol() {
    
            //加载文档
            Workbook wb = new Workbook();
            System.out.println("加载OLT流量报表....");
            wb.loadFromFile("F:\\Datareport\\OLT.xlsx");
    
            //获取工作表
            Worksheet sheet = wb.getWorksheets().get(0);
            //从第9列开始删除,删除9列在内的4列
            sheet.deleteColumn(9, 4);
            //经过上一次删除后,索引重新从1开始,从第11列开始,删除11列在内的4列
            sheet.deleteColumn(11, 4);
            //保存文档
            wb.saveToFile("F:\\Datareport\\OLT流量报表.xlsx");
            wb.dispose();
            System.out.println("OLT流量报表格式整理完成....");
        }

       首先要导入 import com.spire.xls.Workbook,或者直接导入import com.spire.xls.*,通过Workbook的对象wb的loadFromFile()方法获得需要操作的Excel文件,然后去获得他的工作表,此处工作表的索引从0开始,即第一张工作表是wb.getWorksheets().get(0),(此处想要吐槽一下,这个组件的索引不太明确,有的索引从1开始,有的从0开始,经常会弄乱。比如他的复制单元格内容,有的索引就是从1开始)

    想要删除某一列单元格在这个组件上操作很方便,获得工作表对象sheet后,调用它的deleteColum()方法即可,Spire .XLS for Java的源码如下:

     此时的index是从1开始的,sheet.deleteColumn(9, 4)的意思是删除从第9列开始删除,删除第9列在内的4列,即9、10、11、12列:

     我要删除这4列,执行后结果如下:

    最后调用保存方法保存到另一个文件,对源文件不会造成数据的损失,wb.saveToFile();

    同理,如果要删除某银行,调用sheet.deleteRow(int index, int count)方法。

     

    展开全文
  • 在用EXCEL进行数据处理时,经常遇到需要合并某一列中连续出现的包含相同值得单元格的情况,以下图为例: A列中是一些保护区的名称,B列种是这些保护区的级别,发现B列只有国家级、省级、县级和拟建四个值,如果...
  • 如何锁定excel一列不允许修改编辑

    千次阅读 2020-06-24 17:38:23
    步:选择C:D两列。 第二步:右键——设置单元格格式。如图: 第三步:点击保护-去除锁定的√。如图: 第四步:点击确定后,点击审阅-保护工作表-输入密码。如图: 第五步:点击确定后,选择E2单元格。...
  • 1、第一列 不可编辑(对应Excel中保护工作表),其他列可以编辑 2、第五列和第十四列为下拉框 3、可以在导出后新增行数据 二、期间遇到的问题 1、无法设置成不可编辑 2、解决1后未满足需求3,即在导出的Excel...
  • //-----------------------------------...//函数功能:设置某一个行列的颜色和写保护属性 //调用方式:f_set_color(dw_1,row,col) //保护整行:f_set_color(dw_1,row,0) //保护整列:f_set_color(dw_1,0,col) //---...
  • excel中单元格输入内容怎么设置自动加上实线边框腾讯视频/爱奇艺/优酷/外卖 充值4折起Excel是我们常用的办公软件之,如果想要在单元格输入内容时,单元格的边框自动加上实线边框,该怎么办呢,下面小编介绍一下...
  • 前言成堆的数据如何导入Excel进行分析?...使用的比较多的有:文档操作: 虽然大家都是操作 Excel,但即使最基本的新建文件、修改文件、保存文件等功能,在不同的库也存在差异。比如 xlsxwriter 并不...
  • VBA 一列单元格 不可编辑 而其他的可以编辑 就是查询出来的数据主键那一列 我想让那一列不能编辑 只能看 应该怎么写代码
  • phpexcel指定/表(sheet)被锁定受保护加密相应保护一、受保护phpexcel的//实例化PHPExcel$objPhpExcel= new \PHPExcel();$objPhpExcel->getProperties();//受保护的地址$objPhpExcel->getActiveSheet...
  • Excel:加密保护资料

    2019-12-24 00:15:00
    Excel可以基于四个层面对数据进行加密保护:(1)单元格及单元格区域(2)工作表(3)工作簿(4)文件特别提醒:操作时一定要记住自己输入的密码!单元格(区域)级别的保护保护工作表之前...
  • excel中如何做到只能输入,不能修改。根据小编理解应该是有条件的不能修改,万一第1次就输入错了呢?下面小编就给同学们做个“审核”后就无法再修改的示例。 、效果演示 1、你在表格输入了销售记录 2、...
  • 1、某一列 、某一行或某些单元格不可编辑,其他列可以编辑 二、期间遇到的问题 1、无法设置成不可编辑 2、设置为不可编辑,导出后发现所有单元格均不可编辑; 原因:createCell();创建单元格后,单元格默认是...
  • 用JAVA在读取EXCEL文件时如何判断列隐藏使用POI解析EXCEL文件.sheet的某一列隐藏(hide)了.如何把它找出来?我使用了cell.getCellStyle().getHidden(),但是不成功.得到的属性是:"格式>>单元格>>保护>>隐藏",而不是我...
  • 可以冻结一行或一列或多行和多列;可以冻结整个表。无论是冻结单元格还是冻结行,只要选择它们,方法都是相同的。如果只需要冻结单元格格式(即表结构),即不能再对单元格进行格式设置(包括固定的行高和列宽,不能...
  • 编写表格时,我们常常使用表格最左侧的一列和最上方的一行作为序号列和标题列,分别显示序号和解释每列数据的意义,如下图所示。这样做有助于提高表格的可读性。但对于一个行列数较多的表格,序号列和标题行会随着...
  • Excel应用于报表开发)--开始 使用C#和Excel进行报表开发(二)-操作统计图(Chart) 使用C#和Excel进行报表开发(三)-生成统计图(Chart) 使用C#和Excel进行报表开发(四)-复制单元格 ...
  • 可以在保护工作表时,为工作表设置多个可以修改的区域,并为每个单元格区域设置一个修改密码,当修改这些区域时需要输入正确密码才能修改,从而达到个工作表多人进行有限的编辑。 怎样在同一张EXCE
  • Excel中Chart对象成员表

    千次阅读 2017-07-06 17:17:19
    因最近在做个插件,与图表相关,现就把Excel中Chart成员的方法、属性、事件做成个表,以便以后进行查询,成员表如下表。注意,本表内只包含其方法、属性、事件的基本说明,如果您需要获取其详细的信息请参阅...
  • Excel

    2021-02-18 14:32:17
    Excel体上跟word界面类似,有很多功能是一样的,个文档就是个工作簿,每个工作簿又默认包含个工作表,名称是Sheet1,可以有很多个工作表,工作表之间是独立的 点击左下角的+号,可以添加个工
  • 在最近的项目开发,发现,每个查询页面,都需要要去下载生成Excel文件的功能,并且,这个需求还是比较常见的,以前呢?就是单独为每个下载Excel,去定制写好下载功能了。。但是,渐渐发现,这种方式是不可取的...
  • EXCEL中所有函数的使用

    万次阅读 2016-11-18 10:48:05
    EXCEL中所有函数的使用 来源: 周虹的日志 http://blog.renren.com/share/311273732/3704260772 EXCEL中所有函数的使用 1.求和函数SUM 语法:SUM(number1,number2,...)。 ...
  • VBEXCEL的各种操作

    万次阅读 2017-02-08 15:20:15
    全面控制 Excel 首先创建 Excel 对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application 1) 显示当前窗口: ExcelID.Visible := True; 2) 更改 Excel 标题栏: ExcelID.Caption ...
  • 可以这样理解CurrentRegion属性所代表的区域,即以活动单元格为中心,它所包含的矩形区域的每一行和每一列中至少包含有一个数据,上图中的蓝色阴影区域中,无论活动单元格是哪一个,其所在的当前区域均为同一区域,...
  • 函数作用:将工作表最后一列作为页脚打印在每一面页尾101 '102.函数作用:获取vbproject引用项目.................102 '103.函数作用:移除Excel工作表的外部数据连接.......103 '104.函数作用:将选择定单元格作成...
  • VBA在Excel中的应用(

    千次阅读 2010-05-12 17:00:00
    可以这样理解CurrentRegion属性所代表的区域,即以活动单元格为中心,它所包含的矩形区域的每一行和每一列中至少包含有一个数据,上图中的蓝色阴影区域中,无论活动单元格是哪一个,其所在的当前区域均为同一区域,...
  • 常见Excel技巧表

    万次阅读 2018-12-09 16:31:39
    003、多个单元格内容复制到个单元格、CTRL+D填充、快速做序列号 004、实时预览、双击格式刷、微调字体大小 005、快速移动、复制、互换位置、凹凸边框制作、给文字添加拼音、斜对齐 006、利用添加拼音调整...
  • 1. 设置单元格无法编辑 // 单元格样式锁定 不可编辑 CellStyle lockStyle = workbook.createCellStyle(); lockStyle.setLocked(true); // 单元格样式不锁定 CellStyle unlockStyle = workbook.createCellStyle()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,641
精华内容 2,256
关键字:

如何设置保护excel中某一列