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();