2011-06-24 70 views
1

我有密码保护的XLS(数据未受到保护的列中添加禁用)。这是代码:保存密码保护的Excel文件在C#中的XML(我知道密码)

_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(ERROR)

的错误是在法国,因为我使用.NET法国“您所要拍摄的工作簿受密码保护。文件夹受密码保护不能被保存在一个XML电子表格,以保存该文件作为XML的电子表格,您必须首先删除密码“。

任何帮助吗?由于

回答

0

好吧所以我不得不做的是:

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

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

然后,我可以在C#运行另存为:)

1

翻译的错误是:

“工作簿你尝试尝试记录是由密码保护的密码文件夹保护,不能在一个XML电子表格要将此文件保存为XML电子表格进行存储,..你必须首先删除密码“。 (去谷歌翻译!)

所以这是由设计,所以唯一的出路就是删除密码,然后保存它。

+1

任何方式PLC? – MoreCoffee

+0

看看这些线:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/9864c1ab-3efe-4d7c-8ff3-ca8858af3c22/ – Bravax