我正在使用互操作来创建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();
答案 0 :(得分:1)
技巧:打开Excel&gt;开发人员工具栏&gt;记录宏&gt;选择/突出显示范围&gt;然后选择FormatCells:
将细胞的背景颜色更改为灰色,表示它们已被禁用。
停止在开发人员工具栏上录制宏。
然后按 Alt + F11 进入VBA编辑器并查看模块1中的代码。
简单地将该代码转换为C# - 它几乎与C#中的对象模型完全相同,与VB相同。