I have been searching for an answer to the same problem. I have found (by experimentation) that if you use something like this:
using OWC = Microsoft.Office.Interop.Owc11;
Then the following:
OWC.Worksheet owcWorkSheet = (OWC.Worksheet)xl.Worksheets[1];
owcWorkSheet.Protection.Enabled = true;
owcWorkSheet.Protection.AllowDeletingColumns = false;
owcWorkSheet.Protection.AllowDeletingRows = false;
owcWorkSheet.Protection.AllowFiltering = false;
owcWorkSheet.Protection.AllowFormattingColumns = false;
owcWorkSheet.Protection.AllowFormattingRows = false;
owcWorkSheet.Protection.AllowHeadingRename = false;
owcWorkSheet.Protection.AllowInsertingColumns = false;
This will lock the worksheet. I still have not found a way to get the password in there. Possibly it is set in a different way than you are using. Make sure that you unlock / lock all cells using the hidden method:
owcWorkSheet.Cells.set_Locked(false);
owcWorkSheet.Cells.get_Item(1, 3).set_Locked(true);
Or switch it around if you want the reverse (i.e. want all cells locked except for one of them.).
It seems that the
owcWorkSheet.Protection.Enabled = true;
is what locks the worksheet.
If I find out how to assign a password to OWC11, I will mention that here. Hope this helps a bit.