none
Inserir dados numa planilha que está fechada. RRS feed

  • Pergunta

  • Eu gostaria de um código que grave valores em uma planilha fechada sem abri-la.

    Por exemplo, eu tenho uma planilha aberta e cadastro uma ficha de um cliente. Mas eu preciso salvar essa ficha cadastrada em outra planilha que está fechada mas sem abri-la.

    Alguém sabe como fazer?

    quinta-feira, 28 de setembro de 2017 19:15

Respostas

  • Boa tarde Ludimila

    Uma opção bem funcional peguei do macoratti, e funciona bem.

    Private Sub GravaExcel()
     
        Dim arquivo As String = "C:\Users\jonas\OneDrive\TI\Excel CSharp\Empregados.xlsx"
        Dim arquivo As String = "C:\TESTE\Empregados.xlsx"
        Dim stringConexao As String = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;ReadOnly=False';", arquivo)
        Dim instrucaoSQL As String
     
        'necessário Imports System.Data.OleDb
        Dim oleCon As OleDbConnection
        Dim oleCmd As OleDbCommand
     
        instrucaoSQL = "INSERT INTO [Empregados$] "
        instrucaoSQL += "([CodFunci],[NomeFunci]) "
        instrucaoSQL += "VALUES "
        instrucaoSQL += "(@CodFunci,@NomeFunci)"
     
        'estou colocando os valores a inserir em variáves apenas para não incluir um novo formulário
        Dim codigo As String = "123"
        Dim nome As String = "Ludimila"
     
        Try
            oleCon = New OleDbConnection(stringConexao)
            oleCon.Open()
     
            oleCmd = New OleDbCommand()
            oleCmd.Connection = oleCon
            oleCmd.CommandType = CommandType.Text
     
            oleCmd.CommandText = instrucaoSQL
            oleCmd.Parameters.Add("@CodFunci"OleDbType.Integer).Value = Convert.ToInt32(codigo)
            oleCmd.Parameters.Add("@NomeFunci"OleDbType.VarChar, 255).Value = nome.Trim()
            oleCmd.ExecuteNonQuery()
     
            oleCmd.Parameters.Clear()
     
            If oleCmd Is Nothing Then
                oleCmd.Parameters.Clear()
                oleCmd.Dispose()
            End If
     
            oleCmd = Nothing
     
            If oleCon Is Nothing Then 
                If oleCon.State = ConnectionState.Open Then
                    oleCon.Close()
                End If 
                oleCon.Dispose()
            End If
     
            oleCon = Nothing 
        Catch ex As Exception
            MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try 
        MessageBox.Show("Dados Incluídos...")
     
    End Sub

    O artigo completo pode ser conferido em http://www.macoratti.net/12/10/c_mxls1.htm

    Veja se é isto

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quinta-feira, 28 de setembro de 2017 20:04