Visual Basic.NET - Bloquear Hoja de Excel desde una function de vb.net

 
Vista:
sin imagen de perfil

Bloquear Hoja de Excel desde una function de vb.net

Publicado por Juan Carlos (11 intervenciones) el 12/05/2015 21:53:42
Hola buen día.

Tengo una función que exporta de Datagridview a Excel, los datos mostrados en mi Datagridview están correctos y hasta aquí todo bien.

La pregunta es... Como puedo bloquear mi hoja de Excel desde la función, para que cuando termine la exportación no se puedan modificar los datos de mi hoja. Esta es la función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Public Function GridAExcel(ByVal DGV As DataGridView) As Boolean
 
        'Creamos las variables
 
        Dim exApp As New Microsoft.Office.Interop.Excel.Application
        Dim exLibro As Microsoft.Office.Interop.Excel.Workbook
        Dim exHoja As Microsoft.Office.Interop.Excel.Worksheet
 
        Try
            exLibro = exApp.Workbooks.Add
            exHoja = exLibro.Worksheets.Add()
            ' ¿Cuantas columnas y cuantas filas?
            Dim NCol As Integer = DGV.ColumnCount
            Dim NRow As Integer = DGV.RowCount
            'recorremos todas las filas, y por cada fila todas las columnas
            'y vamos escribiendo.
            For i As Integer = 1 To NCol
                exHoja.Cells.Item(1, i) = DGV.Columns(i - 1).Name.ToString
            Next
            For Fila As Integer = 0 To NRow - 1
                For Col As Integer = 0 To NCol - 1
                    exHoja.Cells.Item(Fila + 2, Col + 1) = DGV.Rows(Fila).Cells(Col).Value()
                Next
            Next
            exHoja.ProtectContents.ToString()
            'Titulo en negrita, Alineado
            exHoja.Rows.Item(1).Font.Bold = 1
            exHoja.Rows.Item(1).HorizontalAlignment = 3
            exHoja.Columns.AutoFit()
            'para visualizar el libro
            exApp.Application.Visible = True
            exHoja = Nothing
            exLibro = Nothing
            exApp = Nothing
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error al exportar a Excel")
            Return False
        End Try
        Return True
    End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Bloquear Hoja de Excel desde una function de vb.net

Publicado por giancarlo (488 intervenciones) el 13/05/2015 19:20:00
Al usar interop, es como si estuvieras abriendo el archivo, solo que por comando y hasta oculto si usaste el comando exapp.visible.false por lo tanto se bloquea automaticamente y el que quiera abrir lo hara como solo lectura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar