C# C中Excel文件的密码保护#

C# C中Excel文件的密码保护#,c#,excel,passwords,password-protection,C#,Excel,Passwords,Password Protection,有人知道这个的语法吗?我一直在到处寻找,我能找到的是C++代码。我正在尝试使用System.IO.Packaging名称空间以编程方式对excel文件进行密码保护 有什么想法吗 补充说明: 我没有使用Excel互操作,而是使用System.IO.Packaging命名空间对Excel文件进行加密和密码保护 无法使用System.IO.Packaging。您必须使用该方法使用Microsoft.Office.Interop.Excel。这需要在目标系统上安装Excel。您必须在工作表上使用Save

有人知道这个的语法吗?我一直在到处寻找,我能找到的是C++代码。我正在尝试使用System.IO.Packaging名称空间以编程方式对excel文件进行密码保护

有什么想法吗

补充说明:


我没有使用Excel互操作,而是使用System.IO.Packaging命名空间对Excel文件进行加密和密码保护

无法使用
System.IO.Packaging
。您必须使用该方法使用Microsoft.Office.Interop.Excel。这需要在目标系统上安装Excel。

您必须在工作表上使用SaveAs方法。它有一个参数来设置密码。下面是一个在VB中可以转换为C的例子#


如果您想要一个Excel密码,您只需要以下内容:

using Microsoft.Office.Interop.Excel

//create your spreadsheet here...

WorkbookObject.Password = password;
WorkbookObject.SaveAs("spreadsheet.xls")
这需要安装Excel


当然,这与
System.IO.Packaging
无关,因此您可能需要重申您的问题…

因此您试图创建某种密码保护的zip文件,这意味着您的问题不是excel特有的?据我所知,他指的是“使用密码保存”Excel的功能,可通过Excel OM使用。虽然Excel(和COM自动化一般)在VB中比在C#(3.0)中容易得多。这里有一个链接向感兴趣的人解释这一点:使用Excel Interop,但这里的关键点是工作簿。WritePassword=“somepassword”,这是我们需要分配的方式。此解决方案有效。但这需要在运行此代码的任何服务器上安装Microsoft office。因为在我的案例中有很多服务器,所以客户并没有准备好为每台服务器中的Microsoft office付费。有没有其他方法可以在Excel文件中设置密码而不必安装Microsoft office?
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)
        {

        }

    }
}