2011-08-18 4 views
1

코드에서 Excel 스프레드 시트를 생성 중입니다. 닷넷 코드 을 사용하여 셀을 사용자 지정하려고하는데 그 셀에 텍스트를 입력 할 수 없도록 헤더 행을 잠급니다. 성공하지.Net에서 잠금 행 잠금

  1. worksheet.Range ("A1", "A1") 2 가지 방법으로 다음과 같은

    I 시도합니다. EntireRow.Locked = 진정한

  2. worksheet.Unprotect()
    워크 시트 .Range ("A1", "A100은"). = 진정한
    worksheet.Protect를 잠금()

은 그게 내가 아무것도 여기에 실종 됐어?

--- 코드 ---

공공 하위 CreatNewExcelWithAppliedRules

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 
+0

오류가 발생 했습니까? 또는 행을 수정하지 못했습니까? – Patrick

+0

오류가 발생하지 않았습니다. 잠금을 적용하지 않고 텍스트를 입력 할 수 있습니다. – ramesh

답변

2

A1 (() 문자열의 ByVal의 noOfWSheets으로 목록) : A100은 왼쪽 열입니다. A1 : IV1이 맨 위 줄입니다. 당신의 시도는 모두 가깝습니다.

시도 : 새 Excel 워크 시트에서

worksheet.Cells.Locked = False 
worksheet.Range("1:1").Locked = True 
worksheet.Protect 

모든 세포는 기본적으로 잠겨 있습니다. 먼저 전체 워크 시트의 잠금을 해제하지 않으면 잠글 셀보다 잠금 해제 할 셀을 선택하는 것이 좋습니다.

+0

위와 같은 시도를했지만 여전히 헤더에 텍스트를 입력 할 수 있습니다. – ramesh

+1

'worksheet'가 정의 된 위치와 같은 코드를 더 많이 표시하십시오. –

+0

'worksheet'를'worksheets (1)'로 바꾸면 저에게 적합합니다. Excel 파일을 생성하는 방법에 따라 색인을 변경해야 할 수도 있습니다. – Patrick

관련 문제