Task to take data from Excel file

using Microsoft.Office.Interop.Excel; class Program { private static string NameExcel = @"\Список телефонов.xlsx"; static void Main() { //Создаём приложение. Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application(); //Открываем книгу. Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(NameExcel, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); //Выбираем таблицу(лист). Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet; ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1]; string [,] Telephons = new string[100]; //Выбираем первые сто записей из столбца. for (int i = 1; i < 101; i++) { //Выбираем область таблицы. (в нашем случае просто ячейку) Microsoft.Office.Interop.Excel.Range range = ObjWorkSheet.get_Range("F" + i.ToString(), "F" + i.ToString()); //Добавляем полученный из ячейки текст. Telephons[i - 1] = range.Text.ToString(); } } 

The problem is that it constantly opens the file for writing. How to open it only for reading?

    2 answers 2

    See the Workbooks.Open () documentation.

    There the third parameter is called ReadOnly

    So you need to write ObjExcel.Workbooks.Open(NameExcel, 0, true, ...

      Need to fix WorkBook.Open() . 3 parameter ReadOnly

       Microsoft.Office.Interop.Excel.Workbook ObjWorkBook = ObjExcel.Workbooks.Open(NameExcel, 0, true, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 

      Workbook Open (
      string Filename,
      Object UpdateLinks,
      Object ReadOnly, Object Format,
      Object Password,
      Object WriteResPassword, Object IgnoreReadOnlyRecommended,
      Object Origin,
      Object Delimiter, Object Editable,
      Object Notify
      Object Converter,
      Object AddToMru, Object Local,
      Object CorruptLoad

      )

      WorkBook.Open ()