【发布时间】:2011-08-18 05:33:41
【问题描述】:
我正在从代码生成 Excel 电子表格。我正在尝试使用 .net 代码自定义单元格, 我想锁定标题行,这样它就不允许在这些单元格中输入文本。
我尝试了两种方法都没有成功
-
worksheet.Range("A1", "A1").EntireRow.Locked = True
-
worksheet.Unprotect()
worksheet.Range("A1","A100").Locked = True
worksheet.Protect()
这是我在这里缺少的东西吗?
---代码---
Public Sub CreatNewExcelWithAppliedRules(ByVal noOfWSheets As List(Of String))
Dim misValue As Object = System.Reflection.Missing.Value
Dim App As New Application
Dim workbook As Workbook = App.Workbooks.Add()
Dim worksheet As Worksheet = workbook.Worksheets(1)
Dim sFile As String = "sample-excel"
---READ HEADERS FROM XML
Dim xmlFile = "E:\ExcelPOC\ExcelValidation\App_Data\Headers.xml"
Dim fsReadXml As New System.IO.FileStream(xmlFile, System.IO.FileMode.Open)
dsHeaders.ReadXml(fsReadXml)
dtHeader = dsHeaders.Tables("Column")
---ADD HEADERS LIST TO EXCEL
FillColumnHeader(worksheet, dtHeader, culture)
worksheet.Unprotect()
---ADD VALIDATION RULES
For Each worksheet In workbook.Worksheets
ListValidExcelRule(worksheet)
DateValidExcelRule(worksheet)
TextLengthValidExcelRule(worksheet)
DecimalValidExcelRule(worksheet)
Next
worksheet.Range("1:1").Locked = True
worksheet.Protect()
---SAVE THE EXCEL
sFile = App.GetSaveAsFilename(InitialFilename:=sFile, FileFilter:="xls Files (*.xls), *.xls")
If sFile <> "False" Then
workbook.SaveAs(Filename:=sFile, _
FileFormat:=XlFileFormat.xlWorkbookNormal, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False)
Else
App.DisplayAlerts = False
End If
workbook.Close(True, misValue, misValue)
App.Quit()
releaseObject(worksheet)
releaseObject(workbook)
releaseObject(App)
End Sub
【问题讨论】:
-
您是否收到任何错误,或者只是没有阻止对该行的编辑?
-
我没有收到任何错误。它没有应用锁定并允许输入文本