• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

freaklori

[Resolvido] Excel/String Builder e VbTab

3 mensagens neste tópico

Boas,

Venho aqui solicitar a vossa ajuda com estas duas duvidas:

Primeiro, o Objectivo que pretendo é criar uma String Builder e adicionar la registos atraves do apend que vem da BD

 
While Dr.Read
      'Qd Tiver Mil Registos / Escrever no Excel
      If N_Linha >= 1000 Then Escrever_Registos_Por_Classificacao() : N_Linha = 1

      Dr = Cmd.ExecuteReader
      RegistosExcel.Append(Dr!ID & vbTab & Dr!Tipo_de_Meio & vbTab & Dr!Sector & vbTab & Dr!Categoria & vbTab & Dr!Classe)
     **** CODIGO RETIRADO ****
      RegistosExcel.Append(vbNewLine)
      N_Linha += 1

    End While
    Dr.Close()

Ok Tudo Bem

Agora o meu problema é o seguinte,

    Clipboard.SettText(RegistosExcel.ToString)


Ponho em memoria para depois ir fazer um Paste no Excel

e é aqui que as minhas duvidas começam... Pq apesar de ter na StringBuilder os parametros diferenciados por um vbTab na altura de colar no excel ele nao me cola numa coluna diferente.

O Vb.tab nao é reconhecido no excel como mudança de Coluna ??

Cumps, Se nao me expliquei Bem digam

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso de copiar para o clipboard e depois colar no Excel é um requisito? É que não tem lógica nenhuma!

O melhor é criares uma automação no Excel através do VB, isso sim é que faz sentido.

Podes ver um exemplo aqui que exporta uma datagridview para Excel, mas podes ver como funciona.

VB.NET: Exportar DataGridView para Excel

http://vbtuga.blogspot.com/2008/05/vbnet-exportar-datagridview-para-excel.html

De qualquer maneira para o Excel reconhecer outra coluna, e se quiseres utilizar esse método, usas ponto e virgula em vez do tab.

Se tiveres dúvidas diz qualquer coisa...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Ja Resolvi a situação!

Utilizei o Clipboard e dps Colei no Excel

Criei tb uma funçãozita para adicionar TAB's para ser reconhecida como Coluna!

Estou a falar a volta de sensivelmente 10Mil registos por Classificaçao (Variavel, uns com 5mil registos outros com 20mil) no Total de 19 Classificaçoes

O metedo que estou a usar é o melhor pq de mil e mil linha colo no Excel a informação!

Aqui fica o codigo (Julgo que n seja importante para os demais)


Private Sub Carregar_Registos_Por_Classificacao(ByVal Classificacao As String)

    Dim Cmd As New SqlCommand("SELECT ************* REMOVIDO CODIGO=" & P(Classificacao), Conn)
    Dim Dr As SqlDataReader = Cmd.ExecuteReader

    RegistosExcel = New System.Text.StringBuilder


    Dim N_Linha As Integer = 1
    While Dr.Read
      'Qd Tiver Mil Registos / Escrever no Excel
      If N_Linha >= 1000 Then Escrever_Registos_Por_Classificacao() : N_Linha = 1
      RegistosExcel.Append("" & vbTab & Dr!ID & TAB(Dr!Tipo_de_Meio) & TAB(Dr!Sector) & TAB(Dr!Categoria) & TAB(Dr!Classe))
      RegistosExcel.Append(TAB(Dr!SubClasse) & TAB(Dr!Anunciante) & TAB(Dr!Marca) & TAB(Dr!SubMarca) & TAB(Dr!Descricao))
************* REMOVIDO CODIGO
      RegistosExcel.Append(Dr!N_Mes & vbTab & Dr!Dia_da_Semana & vbTab & Dr!Periodo & vbTab & Dr!Ins & vbTab & Dr!Inv & vbTab)
      RegistosExcel.Append(Dr!GRP & vbTab & Dr!GRP_EQ & vbTab & Dr!Is_Patrocinio & vbTab & Dr!Is_Aerial)

      RegistosExcel.Append(vbNewLine)
      N_Linha += 1

    End While
    Dr.Close()

    Escrever_Registos_Por_Classificacao()

  End Sub





  Private Sub Escrever_Registos_Por_Classificacao()
    Clipboard.SetText(RegistosExcel.ToString)
    FileExcelExport.Show()
    FileExcelExport.xlApp.ActiveSheet.Paste()
    FileExcelExport.GotoXY(FileExcelExport.Get_Last_Row_Number(FileExcelExport.xlApp.ActiveSheet) + 1, 1)
  End Sub

  Private Function TAB(ByVal STR As Object) As Object
    STR = STR.Replace(vbTab, "")
    STR = vbTab & STR
    Return STR
  End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora