Как сделать содержимое ячейки Excel невидимым - PullRequest
1 голос
/ 07 марта 2011

У меня есть файл Excel (VSTO), который будет загружен с данными.Однако я хочу сделать одну ячейку невидимой, так как она содержит один из идентификаторов, которые не должны раскрываться пользователю.

Я использую свойство Excel.Range.Value2 для установки значения.Теперь я хочу сделать значение внутри него невидимым

Я использую C #, как мне выполнить вышеупомянутое.

Ответы [ 5 ]

4 голосов
/ 16 мая 2012

Это сделает содержимое ячейки невидимым, пока вы не нажмете на них, а затем сможете изменить данные. Здесь

Microsoft.Office.Interop.Excel.Range descriptionRange31 = xlApp.get_Range("A18,A25,B18,B25");
descriptionRange31.NumberFormat = ";;;";
2 голосов
/ 07 марта 2011

Я не уверен, как сделать это невидимым. Однако вы можете просто скопировать и сохранить значение в переменной в памяти и заменить его на string.Empty.

Объявите переменную в объекте приложения ваших плагинов таким образом, чтобы она оставалась активной, пока открыт Excel.

Если вы хотите сохранить его, даже когда приложение Excel закрыто, то либо закодируйте его, либо запишите его на диск, либо сохраните его в свойствах книги Excel (то же место, которое видно на странице свойств книги).

1 голос
/ 10 марта 2011

Я работал над приложениями VSTO Excel.В моем проекте я использовал специальные идентификаторы для уникальной идентификации каждого столбца ..

Итак, я бы предложил вместо того, чтобы углубляться в кодирование, вы можете выполнить следующие 2 действия, чтобы сделать его невидимым.Зайдите в вашу визуальную студию, откройте режим оформления рабочей книги.Введите свои идентификаторы в столбцах или строках, где вы хотите (допустим, в столбце C и строке 5,6)

1.Вы можете видеть горизонтальные / вертикальные полосы сверху и слева от Excel, которые мыиспользуйте для изменения размера столбцов n строк. Просто настройте его таким образом, чтобы этот конкретный столбец был скрыт

enter image description here

, как вы можете видеть изображение, я настроил столбцы, чтобыСкройте столбцы "C" и строки, чтобы скрыть строки № 5 и 6.

2. Теперь откройте Excel (не из Visual Stodio, из проводника Windows), нажмите Alt + T + P + P и защитите лист, используяпароль и все готово.

Теперь пользователь не может вносить какие-либо изменения в столбцы или строки, а дата остается невидимой.

С уважением,

Sangram Nandkhile

0 голосов
/ 10 марта 2011

Я не уверен, что этот ответ соответствует вашему уровню вопроса, но это, если я буду в вашем описании проблемы.Я бы просто сделал цвет шрифта таким же, как фон, и заблокировал бы ячейку для редактирования (которую вы, конечно, обрабатываете из кода, в то время как записываете / изменяете значение) и пошел бы на блокировку листа Excel, за исключением ячеек / областей, которые явно помечены как открытые.

0 голосов
/ 07 марта 2011

Я не уверен, что вы можете сделать содержимое ячейки "невидимым".Однако вы могли бы пройти долгий путь к этой цели:

  1. Поместив скрытую информацию в скрытый столбец на отдельном листе
  2. Паролем, защищающим структуру листа для предотвращения его скрытия.скрытый столбец
  3. Скрытие защищенного рабочего листа
  4. Пароль, защищающий проект VBA рабочей книги от редактирования

Безопасность этого подхода не 100%, поскольку защита Excel не является чрезмернотрудно сломать.Тем не менее, сочетание незаметности (поскольку вкладка рабочего листа невидима даже для пользователя) и защиты проекта VBA от редактирования (поэтому, даже если кто-то знает, что скрытый лист находится там, его не будет так просто кодировать.метод) и защита паролем структуры рабочего листа (чтобы не было легко отобразить защищенный столбец) должны помешать всем, кроме самых решительных заглядчиков, видеть то, что вы скрываете.

Я не работал сVSTO, так что я не могу кодировать это для вас.Однако этот подход действителен, и все хуки API для его достижения, вероятно, доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...