Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用excel工作表中的单元格_C#_Asp.net_Excel_Excel Interop - Fatal编程技术网

C# 禁用excel工作表中的单元格

C# 禁用excel工作表中的单元格,c#,asp.net,excel,excel-interop,C#,Asp.net,Excel,Excel Interop,我正在使用interop创建excel工作表,并将我的数据表存储在其中,然后为用户打开它。我不希望用户编辑某些列。导出excel工作表时是否可以禁用特定单元格 下面是我的代码 Excel.Workbook excelWorkBook = excelApp.Workbooks.Open(Server.MapPath("UploadedExcel/" + lblTestCode.Text.Trim() + ".xls")); FieldInfo myf = typeof(TEST)

我正在使用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();
Excel.工作簿Excel工作簿=excelApp.Workbooks.Open(Server.MapPath(“uploadexcel/”+lblTestCode.Text.Trim()+“.xls”);
FieldInfo myf=typeof(TEST).GetField(“abcd”);
foreach(ds.Tables中的数据表)
{
//使用Datatable名称将新工作表添加到工作簿
Excel.Worksheet excelWorkSheet=(Microsoft.Office.Interop.Excel.Worksheet)excelWorkBook.Sheets.Add();
//excelWorkSheet.Name=“Sheet1”;
对于(int i=1;i
技巧:打开Excel>开发者工具栏>录制宏>选择/突出显示范围>然后选择格式单元格:

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

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

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


只需将代码转换为C#-C中的对象模型与VB中的对象模型几乎完全相同。

您能给我提供一些代码吗,因为我对intero完全陌生。谢谢:我向您展示这项技术的原因是让您知道如何在Excel中手动创建代码(用于任何Excel VSTO任务),并将VBA转换为C#。