Błąd przy zapisie modyfikowanego pliku excel w c# plik tylko do odczytu

0

Cześć,
Czy pracował ktoś na Microsoft.Office.Interop.Excel chce napisać funkcję, która modyfikuje plik excelowy (dobrze zabezpieczony) i zapisuje pod tą samą nazwa lub nową z dokonanymi zmianami. Problem występuje przy zapisie pliku

 MyBook.Save(); 

. Komunikat jaki otrzymuję to "plik, który chcesz zapisać jest w formie tylko do odczytu".

Teoretycznie otworzyłem go z wyłączoną tą opcją

 MyBook = MyApp.Workbooks.Open(path,missing, //updatelinks
          false, //readonly
          missing, //format
          missing, //Password
          missing, //writeResPass
          true, //ignoreReadOnly

Będę bardzo wdzięczny za pomoc

 
class Class1
    {
        private static Excel.Workbook MyBook = null;
        private static Excel.Application MyApp = null;
        private static Excel.Worksheet MySheet = null;
        private static int lastRow;
        string IdPromocji=null;
        string date = null;
        public static void ExcelM()
        {

            string path = @"C:\ARDI\_.OBA MA - PAKIET MMS\KONWERSJA PREP\XLMKS24D01.xls";
            object missing = Type.Missing;


            MyApp = new Excel.Application();
            MyApp.Visible = false;
            MyBook = MyApp.Workbooks.Open(path,missing, //updatelinks
          false, //readonly
          missing, //format
          missing, //Password
          missing, //writeResPass
          true, //ignoreReadOnly
          missing, //origin
          missing, //delimiter
          true, //editable
          missing, //Notify
          missing, //converter
          missing, //AddToMru
          missing, //Local
          missing); //corruptLoad
            MyBook.Unprotect("ARDIbyPR");
            MySheet = (Excel.Worksheet)MyBook.Sheets[1]; 
            MySheet.Unprotect("ARDIbyPR");
            lastRow = MySheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
            MySheet.Cells[5, 3] = "Obydza";
            MySheet.Cells[3,5].Value = "goooooo";

            MyBook.Save();
            MyBook.Close();
            MyApp.Quit();

0

ok. mam nadzieję ze teraz jest bardziej przejrzyście

1 użytkowników online, w tym zalogowanych: 0, gości: 1