Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使Excel单元格内容不可见_C#_Excel_Vsto - Fatal编程技术网

C# 如何使Excel单元格内容不可见

C# 如何使Excel单元格内容不可见,c#,excel,vsto,C#,Excel,Vsto,我有一个excel文件(VSTO),它将与数据一起上传。 但是我想让一个单元格不可见,因为它包含一个不应该向用户显示的ID 我使用Excel.Range.Value2属性设置该值。 现在我想让它里面的值不可见 我正在使用C#,如何完成上述任务。我不知道如何使其不可见。但是,您可以将值复制并保存在内存中的变量中,然后用string.Empty替换它 在插件应用程序对象中声明变量,使其在Excel打开时保持活动状态 如果要在Excel应用程序关闭时仍保留它,请将其写入磁盘,或在编码后将其保存在Exc

我有一个excel文件(VSTO),它将与数据一起上传。 但是我想让一个单元格不可见,因为它包含一个不应该向用户显示的ID

我使用Excel.Range.Value2属性设置该值。 现在我想让它里面的值不可见


我正在使用C#,如何完成上述任务。

我不知道如何使其不可见。但是,您可以将值复制并保存在内存中的变量中,然后用
string.Empty
替换它

在插件应用程序对象中声明变量,使其在Excel打开时保持活动状态


如果要在Excel应用程序关闭时仍保留它,请将其写入磁盘,或在编码后将其保存在Excel工作簿的属性中(与工作簿属性页中可见的位置相同)。

我不确定如何使其不可见。但是,您可以将值复制并保存在内存中的变量中,然后用
string.Empty
替换它

在插件应用程序对象中声明变量,使其在Excel打开时保持活动状态


如果您想在Excel应用程序关闭时仍保留它,请将其写入磁盘,或在编码后将其保存在Excel工作簿的属性中(与工作簿的属性页中可见的位置相同)。

我不确定是否可以将单元格的内容设为“不可见”。但是,您可以通过以下方式实现这一目标:

  • 将隐藏信息放置在单独工作表的隐藏列中
  • 密码保护工作表结构以防止取消隐藏该隐藏列
  • 隐藏受保护的工作表
  • 密码保护工作簿的VBA项目不被编辑
  • 这种方法的安全性不是100%,因为Excel保护不太难打破。但是,模糊性(因为用户甚至看不到“工作表”选项卡)和VBA项目的编辑保护(因此,即使有人知道隐藏的工作表在那里,也不会像编写“取消隐藏”方法那样容易)以及工作表结构的密码保护(因此取消隐藏受保护的列并不容易)应该防止除了最坚决的偷窥者以外的所有人看到你隐藏的东西


    我没有使用VSTO,因此无法为您编写此代码。不过,该方法是有效的,实现该方法的所有API挂钩可能都可用。

    我不确定是否可以使单元格的内容“不可见”。不过,您可以通过以下方式实现这一目标:

  • 将隐藏信息放置在单独工作表的隐藏列中
  • 密码保护工作表结构以防止取消隐藏该隐藏列
  • 隐藏受保护的工作表
  • 密码保护工作簿的VBA项目不被编辑
  • 这种方法的安全性不是100%,因为Excel保护不太难打破。但是,模糊性(因为用户甚至看不到“工作表”选项卡)和VBA项目的编辑保护(因此,即使有人知道隐藏的工作表在那里,也不会像编写“取消隐藏”方法那样容易)以及工作表结构的密码保护(因此取消隐藏受保护的列并不容易)应该防止除了最坚决的偷窥者以外的所有人看到你隐藏的东西


    我没有使用VSTO,因此无法为您编写此代码。不过,该方法是有效的,实现该方法的所有API挂钩可能都可用。

    我曾在VSTO Excel应用程序上工作过。 在我的项目中,我使用了specials ID来唯一地标识每个列

    因此,我建议您可以执行以下两个操作,使其不可见,而不是开始编写代码。 转到您的visual studio,打开工作簿的设计模式。 在列或行中输入您的ID,无论您想在哪里输入(假设在C列和第5,6行)

    1.您可以在excel的顶部和左侧看到水平/垂直条带,我们使用这些条带调整列n行的大小。只需调整它,使特定列隐藏即可

    正如您可以看到的那样,我将列调整为隐藏列“C”,将行调整为隐藏第5行和第6行

    2.现在打开excel(不是从Visual stodio,而是从windows资源管理器)按Alt+T+p+p 并使用适当的密码保护工作表,您的操作就完成了

    现在用户不能对列或行进行任何更改,并且日期保持不可见

    问候,


    Sangram Nandkhile

    我一直在开发VSTO Excel应用程序。 在我的项目中,我使用了specials ID来唯一地标识每个列

    因此,我建议您可以执行以下两个操作,使其不可见,而不是开始编写代码。 转到您的visual studio,打开工作簿的设计模式。 在列或行中输入您的ID,无论您想在哪里输入(假设在C列和第5,6行)

    1.您可以在excel的顶部和左侧看到水平/垂直条带,我们使用这些条带调整列n行的大小。只需调整它,使特定列隐藏即可

    正如您可以看到的那样,我将列调整为隐藏列“C”,将行调整为隐藏第5行和第6行

    2.现在打开excel(不是从Visual stodio,而是从windows资源管理器)按Alt+T+p+p 并使用适当的密码保护工作表,您的操作就完成了

    现在用户不能对列或行进行任何更改,并且日期保持不可见

    问候,


    Sangram Nandkhile

    我不确定这个答案是否符合您的问题级别,但这是否符合您的问题描述。我只需要将字体颜色设置为与背景相同的颜色,并在编辑时锁定单元格(当然,您可以在编写/更改值时从代码中处理),然后锁定excel工作表,但明确标记为o的单元格/区域除外
    Microsoft.Office.Interop.Excel.Range descriptionRange31 = xlApp.get_Range("A18,A25,B18,B25");
    descriptionRange31.NumberFormat = ";;;";