2016-12-15 89 views
-1

我想創建使用Visual Studio 2015的VSTO代碼隱藏Excel文檔。用戶只能在Excel工作表上看到數據的表示,但不能編輯。一個窗體將附加到該特定的Excel工作簿,並且只有用戶可以在Winform上輸入數據並在Excel工作表中摘錄和反映數據。任何一段代碼片段都可以實現這一目標?VSTO Code-Behind Excel文檔

中的Form_Load功能附加的Excel

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工作表/工作簿可以受到保護(具有不同的保護選項)。如果您轉到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); 
...