Защита паролем файла Excel в C # - PullRequest
6 голосов
/ 27 мая 2009

Кто-нибудь знает синтаксис для этого? Я искал везде, и все, что я могу найти, это код C ++ для этого. Я пытаюсь защитить файл Excel паролем программно, используя пространство имен System.IO.Packaging.

Есть идеи?

Дополнительные примечания:

Я не использую взаимодействие с Excel - вместо этого используется пространство имен System.IO.Packaging для шифрования и защиты паролем файла Excel.

Ответы [ 4 ]

8 голосов
/ 27 мая 2009

Если вам нужен пароль Excel, все, что вам нужно, это что-то вроде этого:

using Microsoft.Office.Interop.Excel

//create your spreadsheet here...

WorkbookObject.Password = password;
WorkbookObject.SaveAs("spreadsheet.xls")

Для этого требуется установить Excel.

Конечно, это не имеет ничего общего с System.IO.Packaging, поэтому вам, возможно, придется повторить свой вопрос ...

1 голос
/ 27 июня 2017
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)
        {

        }

    }
}
1 голос
/ 27 мая 2009

Вам нужно будет использовать метод SaveAs на рабочем листе. У него есть параметр для установки пароля. Вот пример в VB, который можно преобразовать в C #

http://www.codeproject.com/KB/office/Excel_Security.aspx

0 голосов
/ 27 мая 2009

Невозможно использовать System.IO.Packaging. Вам придется использовать Microsoft.Office.Interop.Excel, используя метод Worksheet.SaveAs. Для этого требуется установить Excel в вашей целевой системе.

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