Mot de passe Protéger un fichier Excel en C #
-
06-09-2019 - |
Question
Quelqu'un sait la syntaxe pour cela? Je l'ai cherché partout et tout ce que je peux trouver est le code C pour cela. Je suis en train de protéger le mot de passe d'un fichier Excel à l'aide programatically l'espace de noms System.IO.Packaging.
Toutes les idées?
Notes complémentaires:
Je ne suis pas à l'aide du Interop Excel - mais l'espace de noms System.IO.Packaging pour crypter et mot de passe protéger le fichier Excel.
La solution
Si vous voulez un mot de passe Excel tout ce que vous avez besoin est quelque chose comme ceci:
using Microsoft.Office.Interop.Excel
//create your spreadsheet here...
WorkbookObject.Password = password;
WorkbookObject.SaveAs("spreadsheet.xls")
Cela nécessite Excel à installer.
C'est rien à voir avec System.IO.Packaging
bien sûr, vous devrez peut-être reformuler votre question ...
Autres conseils
Vous devrez utiliser la méthode SaveAs sur la feuille de travail. Il a un paramètre pour définir un mot de passe. Voici un exemple en VB qui peut être converti en C #
using System.IO;
using Excel=Microsoft.Office.Interop.Excel;
class ExcelUtil
{
public string Filename;
private Excel.Application oexcel;
private Excel.Workbook obook;
private Excel.Worksheet osheet;
public void createPwdExcel()
{
try
{
// File name and path, here i used abc file to be
// stored in Bin directory in the sloution directory
//Filename = (AppDomain.CurrentDomain.BaseDirectory + "abc.xls");
if (File.Exists(Filename))
{
File.Delete(Filename);
}
if (!File.Exists(Filename))
{
// create new excel application
Excel.Application oexcel = new Excel.Application();
oexcel.Application.DisplayAlerts = false;
obook = oexcel.Application.Workbooks.Add(Type.Missing);
oexcel.Visible = true;
Console.WriteLine("Generating Auto Report");
osheet = (Excel.Worksheet)obook.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
osheet.Name = "Test Sheet";
osheet.get_Range("A1:G1").Merge();
osheet.get_Range("A1").Value = @"Implementing Password Security on Excel Workbook Using Studio.Net";
osheet.get_Range("A1").Interior.ColorIndex = 5;
osheet.get_Range("A1").Font.Bold = true;
string password = "abc";
obook.WritePassword = password;
obook.SaveAs("Chandra.xlsx");
// otherwise use the folowing one
// TODO: Labeled Arguments not supported. Argument: 2 := 'password'
// end application object and session
osheet = null;
obook.Close();
obook = null;
oexcel.Quit();
oexcel = null;
}
}
catch (Exception ex)
{
}
}
}
Il est impossible à l'aide System.IO.Packaging
. Vous devrez utiliser Microsoft.Office.Interop.Excel
en utilisant la balise Worksheet.SaveAs
. Cela nécessite Excel installé sur votre système cible.