2013-10-08 1 views
0

Мне нужно заблокировать определенное значение ячейки в файле Excel с помощью OfficeWriter. Это возможно? Если да, то какие API-вызовы мне нужно использовать?Возможна ли блокировка ячейки в excel с помощью officewriter?

+3

Если этот вопрос касается сломанного ключа CAPS-LOCK, он должен перейти на Superuser.com. – Thilo

+0

@Thilo: Эй, это собирается запирать ячейки в excel, используя офисный писатель. – Prabakaran

+1

Я ВИДЕТЬ. УБЕДИТЕСЬ, ЧТО Я СООТВЕТСТВУЮ. – Thilo

ответ

3

Блокировка ячейки с помощью OfficeWriter такая же, как и в Excel: все ячейки имеют свойство «заблокировано» как часть их стиля. Заблокированное свойство установлено на true по умолчанию, но не влияет на работу до тех пор, пока рабочий лист не будет защищен.

ExcelApplication xla = new ExcelApplication(); 
Workbook wb = xla.Create(ExcelApplication.FileFormat.Xlsx); 
Worksheet ws = wb.Worksheets[0]; 

//Protecting the sheet will lock any cells 
//that have the locked property set to true 
ws.Protect("MyPassword"); 

Чтобы оставить определенные клетки разблокирован, создать стиль, в котором заперт свойство устанавливается в ложной. Затем примените стиль к ячейкам, которые вы хотите оставить разблокированными.

ExcelApplication xla = new ExcelApplication(); 
Workbook wb = xla.Create(ExcelApplication.FileFormat.Xlsx); 
Worksheet ws = wb.Worksheets[0]; 

//Create the 'unlocked' style 
Style unlockedStyle = wb.CreateStyle(); 
unlockedStyle.CellLocked = false; 

//Apply to any cells you wish to leave unlocked 
//when the worksheet is protected 
ws.Cells["A1"].Style = unlockedStyle; 
ws.Cells["B1"].Style = unlockedStyle; 


//Protecting the sheet will lock any cells 
//that have the locked property set to true 
ws.Protect("MyPassword"); 

Мы имеем некоторую дополнительную сопутствующую информацию о защите рабочих листов в нашей документации: http://wiki.softartisans.com/display/EW8/Protecting+Your+Worksheet

Примечания, я работаю SoftArtisans, создатели OfficeWriter.