在Excel表格中禁用单元格

我使用互操作来创buildExcel表格,并将其存储在我的数据表格中,并为用户打开它。 有一些我不希望用户编辑的列。 导出excel表单时,是否可以禁用特定的单元格?

以下是我的代码

Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(Server.MapPath("UploadedExcel/" + lblTestCode.Text.Trim() + ".xls")); FieldInfo myf = typeof(TEST).GetField("abcd"); foreach (DataTable table in ds.Tables) { //Add a new worksheet to workbook with the Datatable name Excel.Worksheet excelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)excelWorkBook.Sheets.Add(); // excelWorkSheet.Name = "Sheet1"; for (int i = 1; i < table.Columns.Count + 1; i++) { excelWorkSheet.Cells[1, i] = table.Columns[i - 1].ColumnName; } for (int j = 0; j < table.Rows.Count; j++) { for (int k = 0; k < table.Columns.Count; k++) { excelWorkSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString(); } } } excelWorkBook.Save(); excelWorkBook.Close(); excelApp.Quit(); 

招数:打开Excel>开发工具栏>录制macros>select/高亮范围>然后selectFormatCells:

在这里输入图像说明

将单元格的背景颜色更改为灰色,以指示它们已禁用。

在开发人员工具栏上停止录制macros。

然后按Alt + F11进入VBA编辑器并查看模块1中的代码。

简单地将这些代码转换为C# – 它几乎是C#中与VB完全相同的对象模型。