【发布时间】:2011-10-29 04:34:29
【问题描述】:
我正在尝试使用 Microsoft.Office.Interop.Excel 使用 C# 操作 excel 文件。 我尝试操作的工作簿在用户之间共享保护。
我有文件密码,并且我有我想要访问和编辑的单元格的密码。
如果我尝试从 Excel 中执行此操作,我会执行以下操作:
- 打开文件,输入密码
- 转到一个单元格,双击一个单元格进行编辑。
- 出现一个对话框,要求我提供密码,我提供密码然后我可以编辑。
我想从 C# 应用程序中执行此操作。
我目前的代码如下:
xl.Application excelApp = new xl.Application();
excelApp.Visible = true;
xl.Workbook newworkbook =
excelApp.Workbooks.Open(@"C:\1.xls", 0, false, 5, "password", "", false,
xl.XlPlatform.xlWindows, "", true, false, 0, true,
false, false);
xl.Sheets excelSheets = newworkbook.Worksheets;
xl.Worksheet excelWorksheet = (xl.Worksheet)excelSheets.get_Item("Sign On_Off");
excelWorksheet.Select(true);
xl.Range myrange = excelWorksheet.get_Range("b16", "b16");
myrange.Value2 = "testing";
最后一行给了我这个错误信息:
您尝试更改的单元格或图表受到保护,因此是只读的。
我无法取消对整个工作表的保护,因为这意味着我将只为我打开文件,而其他用户无法保存更改。
所以我的问题是:有没有办法我可以只取消保护一个单元格?
我想像这样:
myrange.unprotect("pw");
【问题讨论】:
标签: c# .net excel interop ms-office