在Excel工作表中禁用单元格

时间:2014-09-15 05:15:15

标签: c# asp.net excel excel-interop

我正在使用互操作来创建excel表并将我的数据表存储在其中并为用户打开它。有些列我不希望用户编辑。导出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();

1 个答案:

答案 0 :(得分:1)

技巧:打开Excel&gt;开发人员工具栏&gt;记录宏&gt;选择/突出显示范围&gt;然后选择FormatCells:

enter image description here

将细胞的背景颜色更改为灰色,表示它们已被禁用。

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

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

简单地将该代码转换为C# - 它几乎与C#中的对象模型完全相同,与VB相同。