如何使用 C# 将 Excel 单元格设置为只读?

2024-03-10

Range range= (Range)this.workSheet.Cells[1,1];
range.AllowEdit = false;

当我设置AllowEdit属性设置为 false,编译错误将显示:

错误:属性或索引器 无法将“Microsoft.Office.Interop.Excel.Range.AllowEdit”分配给 -- 它是只读的

如何将单元格范围设置为只读?

当我对此范围使用验证时,我的 Cell ContentChanged Event 出现了一些异常。

这是 CellContentChanged 中的代码:

   var updater = new Action<StyleColorItem>(
           item =>
           {
              var editedItem = _taskViewModel.TrackedItems.First(it => it.Id == item.Id); 
            // Above line I am getting the exception like "Sequence contains no matching element"
               editedItem.Update(item);'
           });

Excel 中无法将单元格设置为只读。

您可以在 C# 代码中做的是,定义一个变量或列表中的“只读”单元格,订阅 SheetChange 事件,在 SheetChange 事件中,如果该单元格发生更改,只需撤消该操作改变。

Example私有列表 readOnlyCells = new List();

private void OnActiveSheetCellChange(object changedSheet, Excel.Range changedCell)
{
  if (readOnlyCells.Contains(changedCell))
      changedCell.Value = string.Empty;
      //.... YOUR CODE

Update

另一种选择是使用数据验证:

changedCell.Validation.Add(Excel.XlDVType.xlValidateCustom, Type.Missing, Type.Missing, "\"\"");

使用它你将拥有更少的控制权并且单元将根本不接受任何输入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 将 Excel 单元格设置为只读? 的相关文章

  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • 为什么派生类不使用基类的operator=(赋值运算符)?

    以下是实际问题的简化版本 而不是打电话Base operator int 代码似乎生成了一个临时的Derived对象并复制它 既然函数签名似乎完美匹配 为什么不使用基本赋值运算符 这个简化的示例没有显示任何不良影响 但原始代码在析构函数中有
  • 如何将字节块读入结构体

    我有一个需要处理的资源文件 它包含一组文件 首先 资源文件列出了其中包含的所有文件 以及一些其他数据 例如在此结构中 struct FileEntry byte Value1 char Filename 12 byte Value2 byt
  • 如何在 Windows 窗体中运行屏幕保护程序作为其背景?

    如何在 Windows 窗体中运行屏幕保护程序作为其背景 用户还可以在屏幕保护程序运行时与表单控件进行交互 为什么这个 我们有一个案例 需要在用户时运行 Windows Bubbles 屏幕保护程序 可以继续与表单控件交互吗 您可以使用以下
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • .net Framework (.net 4.0) 中定义 Base 3 数字的类

    我正在寻找一些可以用来定义 3 基数 三进制数 的类 有什么我可以在 net 框架中使用的东西或者我需要写一些东西吗 谢谢你的帮助 您可以使用解析Convert ToInt32 s base http msdn microsoft com
  • 不要声明只读可变引用类型 - 为什么不呢?

    我一直在阅读这个问题 https stackoverflow com questions 2274412 immutable readonly reference types fxcop violation do not declare r
  • 是什么原因导致 Linq 错误:此方法无法转换为存储表达式?

    我有一堆具有相同 select 语句的 Linq to Entity 方法 所以我想我会很聪明 并将其分离到它自己的方法中以减少冗余 但是当我尝试运行代码时 我得到了以下内容错误 该方法不能转化为 商店表达式 这是我创建的方法 public
  • realloc():重新分配为 char * 上的 strcat 腾出空间时下一个大小无效 [重复]

    这个问题在这里已经有答案了 我在以下代码中收到无效内存错误 printf s n FINE 5 printf s LENGTH IS d n FINE 6 strlen buffer char realloc buffer strlen b
  • 理解 C++11 中的 std::atomic::compare_exchange_weak()

    bool compare exchange weak T expected T val compare exchange weak 是 C 11 中提供的比较交换原语之一 它是weak即使对象的值等于 它也会返回 falseexpected
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 删除 VBA 按钮集合

    我正在使用以下脚本在 Excel 中生成按钮 范围正是我希望放置它的位置 Sub CreateAddButton rng As Range Dim btn As Button With Worksheets User Set btn But
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 为什么C语言中可以使用多个分号?

    在 C 中我可以执行以下操作 int main printf HELLO WORLD 它有效 这是为什么 我个人的想法 分号是一个 NO OPERATION 来自维基百科 指示符 拥有一大串分号与拥有一个分号并告诉 C 语句已结束具有相同的
  • 如何将 CSV 文件读入 .NET 数据表

    如何将 CSV 文件加载到System Data DataTable 根据CSV文件创建数据表 常规 ADO net 功能是否允许这样做 我一直在使用OleDb提供者 但是 如果您正在读取具有数值的行 但希望将它们视为文本 则会出现问题 但
  • 是否有任何不使用公共虚拟方法的正当理由? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 是否有任何不使用公共虚拟方法的正当理由 我在某处读到我们应该避免使用公共虚拟方法 但我想向专家确认这是否是有效的声明 对于良好且稳定的 API
  • 为什么 C# 接口名称前面加上“I”

    这种命名约定背后的基本原理是什么 我没有看到任何好处 额外的前缀只会污染 API 我的想法与康拉德一致response https stackoverflow com a 222502 9898与此相关的question https sta
  • 在何处将 CFLAG(例如 -std=gnu99)添加到 (Eclipse CDT) 自动工具项目中

    我有一个简单的 Autotools C 项目 不是 C 其框架是由 Eclipse CDT Juno 为我创建的 CFLAG 通过检查 似乎是 g O2 我希望所有生成的 make 文件也具有 std gnu99附加到 CFLAG 因为我使
  • 通过 cmake 链接作为外部项目包含的 opencv 库[重复]

    这个问题在这里已经有答案了 我对 cmake 比较陌生 经过几天的努力无法弄清楚以下事情 我有一个依赖于 opencv 的项目 它本身就是一个 cmake 项目 我想静态链接 opencv 库 我正在做的是我的项目中有一份 opencv 源

随机推荐

  • 如何在angular2 router3中为子路由指定辅助组件

    我正在使用新的route3 并且想知道为子路由指定辅助组件的URL 语法是什么 我有以下子路由定义 const router RouterConfig path component c component ComponentC childr
  • 为什么要重新抛出异常

    在 C 中 为什么要重新抛出异常 为什么不让当前的catch块处理异常呢 出于什么原因 您会将异常重新抛出到另一个 try catch 块 当函数无法满足其约定 它向调用者承诺它将执行的操作 时 会引发异常 当一个函数调用另一个抛出异常的函
  • Asp.Net MVC 输入验证在禁用后仍然触发

    我已经禁用了validateRequest在我的 web Config 中 但应用程序仍然引发错误 从客户端检测到潜在危险的 Request Form 值 我的 web Config 中有以下内容
  • 如何使用 Javascript 从输入字段获取值?

    如何使用 Javascript 获取特定输入字段的值 我们以这家shopify商店为例 https geekymate com products magic doormat 1 variant 18941211607138 https ge
  • 如何在 Swift 3 中使用带有浮点值的 sin(_ : ) [重复]

    这个问题在这里已经有答案了 import Foundation public func sine
  • 无需管理员权限即可启动和停止 Windows 服务

    如何在没有管理员权限的情况下启动和停止窗口服务 我的应用程序启动应该以与关闭后必须停止的方式相同的方式启动我的服务 我可以使用 服务控制器 来做到这一点 我可以使用管理员权限安装该服务 但启动和停止该服务不应要求管理员权限 谁能告诉我如何使
  • SSLProtocolException 建立 https 连接

    当我与网络服务器建立 https 连接时 出现 SSLProtocolException 我只在 Android 2 3 Gingebread 中有这个例外 相同的代码在所有其他 Android 版本中都可以正常工作 这个安卓版本有问题吗
  • 并非所有字节都读取常见解决方案

    在这篇文章中 我将详细介绍导致神秘错误消息的原因 Smart contract panicked panicked at Cannot deserialize the contract state Custom kind InvalidDa
  • 以编程方式修改 ActionBarDrawerToggle Drawable

    有谁知道在构造函数中通过资源 ID 设置用于 ActionBarDrawerToggle 的可绘制对象的方法吗 我正在使用导航抽屉 我想以编程方式将颜色过滤器应用于图标 但我不知道如何将其作为可绘制对象进行访问 任何帮助 将不胜感激 谢谢
  • 试运行中的 sed 命令

    如何进行空运行sed 我有这个命令 find type f xargs sed i s string1 string2 g 但在我真正替换所有文件之前 我想检查它会替换什么 复制整个目录结构来检查是不可能的 去除 i并将其通过管道传输到le
  • 通过 aws ses 发送带有 Node.js 附件的邮件

    有谁有一些如何发送带有附件的电子邮件的示例node js与 aws ses 一起吗 如果你想避免痛苦 你必须使用 Nodemailer 包装的 SES 直接使用AWS SDK 您无法使用以下方式发送附件ses sendEmail 你必须使用
  • 如何在不下载的情况下计算AWS S3中zip内的文件数量?

    案件 S3 存储桶中有一个很大的 zip 文件 其中包含大量图像 有没有一种方法无需下载整个文件即可读取元数据或知道 zip 文件中有多少个文件 当文件是本地文件时 在 python 中 我可以将其作为 zipfile 打开 然后调用 na
  • 如何强制编译器使用显式复制构造函数?

    我编写了一个小型测试程序 其中包含一个示例类 其中还包含自定义构造函数 析构函数 复制构造函数和赋值运算符 当我意识到复制构造函数根本没有被调用时 我感到很惊讶 即使我实现了带有我的类的返回值和像这样的行的函数Object o1 Objec
  • 为什么 openGL glDepthFunc() 不起作用?

    我正在玩 openGL 我试图摆脱蓝色标记的三角形 我用这个代码 glEnable GL DEPTH TEST glDepthFunc GL LESS glEnable GL CULL FACE 是的 我用 glClear GL COLOR
  • Matplotlib - 单值等高线图

    我想绘制一些数据的等值线图 但字段中的所有值可能都相同 这会导致 matplotlib 中出现错误 这是有道理的 因为实际上没有要创建的轮廓 例如 如果你运行下面的代码 你会得到一个错误 但删除第二个定义zi它按预期运行 如果某些数据是均匀
  • PowerShell 从远程 PC 删除桌面项目

    我有 200 台电脑需要删除一些特定的图标 我使用 ComputerName 创建了一个 CSV 文件 每行 1 个名称 我有另一个文件 其中包含需要从桌面删除的图标的文件名 Shortcut1 lnk 等 该其他文件也是 CSV 每行 1
  • 强制执行必须在*不同*字段中的每个子类中实现的属性的最佳方法是什么?

    我正在尝试想出 最好 的实施方式SQL 数据服务灵活的实体模型 http msdn microsoft com en us library cc512402 aspx其中每个类都可以存储为一个实体 甚至派生类 示例 每个子类都有不同的 st
  • 如何在不使用 for 循环的情况下对不同大小的矩阵的各个部分求和?

    我有一个相对较大的矩阵 NxN N 20 000 和一个 Nx1 向量 用于标识必须分组在一起的索引 我想将矩阵的各个部分相加 原则上可以有不同数量的元素和非相邻元素 我很快写了一个双 for 循环 它可以正常工作 但当然效率很低 探查器将
  • 使用 Python 从 Gmail 下载特定电子邮件

    有人可以帮我定制现有的代码示例吗 我可以从下面的文章中看到如何连接到gmail并下载内容 但我不知道如何搜索特定电子邮件并仅下载时间戳和正文 文章 如何从 Gmail 下载所有带附件的电子邮件 https stackoverflow com
  • 如何使用 C# 将 Excel 单元格设置为只读?

    Range range Range this workSheet Cells 1 1 range AllowEdit false 当我设置AllowEdit属性设置为 false 编译错误将显示 错误 属性或索引器 无法将 Microsof