2016-12-15 13 views
-1

Я хотел бы создать документ Excel с кодом VSTO с помощью Visual Studio 2015. Пользователь может видеть только представление данных на листах Excel, но не редактируемый. Форма окна будет прикреплена к этой конкретной книге Excel, и только пользователь может вводить данные в Winform и переваривать и отражать данные на листах Excel. Любой фрагмент кода может это сделать?VSTO Code-Behind Excel Document

Прикрепленный Excel в функции Form_Load

excelApp=(Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 

В Баттона Нажмите

Excel.Worksheet wb=excelApp.Workbooks.get_Item(workbookName); 
Excel.Worksheet sht=wb.Sheets.get_Item(sheetName); 
Excel.Range startCell=sht.Range["A1"]; 
startCell.FormulaR1C1=textbox1.Text; 
startCell.Offset(0, 1).FormulaR1C1=textbox2.Text; 
... 

Есть ли какие-либо ограничения могут применяться по коду за так, что только ввод из Form1 перейти к данным листа клеток?

+0

Пожалуйста, дайте нам знать, что вы сделали, и какие вопросы у вас есть. Ваш вопрос слишком общий – dgorti

+0

Рабочие листы/книги Excel могут быть защищены (с различными вариантами защиты). Если вы перейдете на вкладку REVIEW на листе Excel и поиграйте с опциями. Если это тот эффект, который вам нужен, тогда его можно настроить с помощью C#. – MacroMarc

ответ

1

Прикрепленный Excel в функции Form_Load

excelApp=(Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 

В Баттона Нажмите

Excel.Workbook wb=excelApp.Workbooks.get_Item(workbookName); 

Excel.Worksheet sht=wb.Sheets.get_Item(sheetName); 
sht.Unprotect(passwordToProtect); 
Excel.Range startCell=sht.Range["A1"]; 
startCell.FormulaR1C1=textbox1.Text; 
startCell.Offset(0, 1).FormulaR1C1=textbox2.Text; 
...// Do editing cell content here 
sht.Protect(userInterfaceOnly:true, password:passwordToProtect); 
...