【问题标题】:Disable cell in excel sheet禁用Excel工作表中的单元格
【发布时间】:2015-06-07 05:03:09
【问题描述】:

我正在使用互操作来创建 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();

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 你能给我一些代码吗,因为我对 intero 完全陌生。谢谢
    • 当然:stackoverflow.com/questions/10582336/… 我向您展示这种技术的原因是让您知道如何通过在 Excel 中手动创建代码(用于任何 Excel VSTO 任务)并将 VBA 转换为 C#。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2014-10-04
    相关资源
    最近更新 更多