Jump to content
freaklori

[Resolvido] Excel/String Builder e VbTab

Recommended Posts

freaklori

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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites
jpaulino

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...

Share this post


Link to post
Share on other sites
freaklori

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


FAÇO TUDO COM DUAS LINHAS DE CÓDIGO;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.