【问题标题】:Save password protected Excel file to XML in C# (I know the password)在 C# 中将受密码保护的 Excel 文件保存为 XML(我知道密码)
【发布时间】:2011-09-22 01:12:32
【问题描述】:

我有一个受密码保护的 XLS(数据不受保护,添加列被禁用)。这是代码:

 _excelApp.DisplayAlerts = false;
            _excelApp.Visible = false;

            //opens
            workBook = _excelApp.Workbooks.Open(InputDirectory + CharacterFileName,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Type.Missing, Type.Missing);

            workBook.Password = "0000";

            //save
            workBook.SaveAs(OutputDirectoryFileName, XlFileFormat.xlXMLSpreadsheet,
                "0000", Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

密码是“0000”。我怎样才能使这段代码工作?我尝试设置密码,但它拒绝另存为 XML(错误)

错误是法语,因为我使用的是法语 .NET“Le classeur que vous essayez d'enregistrer est protégé par mot de passe。Les classeurs protégés par mot de passe ne peuvent pas être enregistrés dans une feuille de calcul XML . Pour enregistrer ce fichier sous forme de feuille de calcul XML, vous devez d'abord supprimer le mot de passe。”

有什么帮助吗?谢谢

【问题讨论】:

    标签: c# excel passwords xls


    【解决方案1】:

    好吧,我必须做的是:

    //unprotect the workbook
    ExcelHelperWorkbook.Unprotect(password);
    
    //unprotect the first worksheet
    ((Worksheet)ExcelHelperWorkbook.Worksheets.get_Item(1)).Unprotect(password);
    

    然后我可以运行 SaveAs :)

    【讨论】:

      【解决方案2】:

      翻译出来的错误是:

      “您尝试记录的工作簿受密码保护。受密码保护的文件夹不能存储在 XML 电子表格中。要将此文件保存为 XML 电子表格,您必须先删除密码。” (去谷歌翻译!)

      这是设计使然,所以唯一的方法是删除密码,然后保存。

      【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 2010-10-29
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      相关资源
      最近更新 更多