在C#中将受密码保护的Excel文件保存为XML(我知道密码)

时间:2011-06-24 13:33:38

标签: c# excel passwords xls

我有一个受密码保护的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'enregistrerestprotégéparmot de passe.Lesclasseursprotégésparmot de passe ne peuventpasêtreenregistrésdansune feuille de calcul XML pour enregistrer ce fichier sous forme de feuille de calcul XML,vous devez d'abord supprimer le mot de passe。“

有任何帮助吗?感谢

2 个答案:

答案 0 :(得分:1)

翻译的错误是:

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

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

答案 1 :(得分:0)

好吧我所要做的就是:

//unprotect the workbook
ExcelHelperWorkbook.Unprotect(password);

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

然后我可以运行SaveAs:)