我的PC上有一个文件夹,其中包含多个Excel电子表格,这些电子表格都被标记为只读。 该文件夹通过OneDrive同步到我公司的Sharepoint。
当我尝试通过Microsoft.Office.Interop.Excel以编程方式从其中一张工作表中读取数据时,我不断收到You cannot use this command on a protected sheet
错误。
这是我用来打开文件的代码:
public ExcelReader(String filePath)
{
this.filePath = filePath;
FileName = filePath.Substring(filePath.LastIndexOf("\\")+1);
app = new Excel.Application();
app.DisplayAlerts = false;
workbook = app.Workbooks.Open(filePath, false, true); //open in read only
}
public void openSheet(String sheet)
{
SheetName = sheet;
worksheet = workbook.Sheets[sheet];
Excel.Range last = worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
ColumnsTotal = last.Column;
RowsTotal = last.Row;
}
引发异常的行是Excel.Range last = worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
。
我认为,由于我明确告诉工作簿以只读模式打开,并且由于我从不修改这些文件的内容,因此文件为只读的事实应该不会有问题。
我在这里做错了什么?如何在不取消保护的情况下读取这些文件的内容(出于安全原因,我不能这样做)?