У меня на компьютере есть папка с несколькими электронными таблицами Excel, которые помечены как доступные только для чтения.Папка синхронизируется с Sharepoint моей компании через OneDrive.
Когда я пытаюсь программно прочитать данные с одного из этих листов с помощью 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);
.
Я подумал, что, поскольку я явно приказываю Рабочей книге открываться в режиме только для чтения, и поскольку я никогда не изменяю содержимое этих файлов, тот факт, что файлы доступны только для чтения, не должен быть проблемой.
Что я здесь не так делаю?Как мне прочитать содержимое этих файлов, не снимая их (я не могу этого сделать по соображениям безопасности)?