quarta-feira, 19 de março de 2014

Criando um identificador único no excel

Para criar um identificador único no exel, tanto para identificar uma linha sem repetições como para fazer scripts para exportar os dados do excel para um banco de dados é necessário abrir o editor de código VBA do excel, na aba Developer.
Caso a guia não esteja aparecendo para você clique em file -> options -> customize ribbon e marque a opção developer à direita.

Na aba developer abra o editor do visual basic, crie um novo módulo e adicione o código.

Public Function NewId() As String
    NewId = Mid$(CreateObject("Scriptlet.TypeLib").Guid, 2, 36)
End Function

Public Function NewGuid() As String
    NewGuid = CreateObject("Scriptlet.TypeLib").Guid
End Function




A função NewId é igual a newid() do sql server e cria uma Guid sem as chaves no início e fim. A NewGuid está aí só para demonstração e apresenta guids com as chaves.
Ambas usam o objeto COM Scriptlet.TypeLib e chamam o método Guid.
Eu uso isso quando eu tenho que importar dados de uma planilha excel para um banco de dados qualquer sem usar DTS ou algum programa para isso: faço uma formuleta excel que concatena strings em uma linha fazendo um script de inserts, concateno os valores das células que quero e uso uma guid gerada por essa função como chave primária.
Você pode fazer download dessa planilha aqui guid.xlsm
Have Fun

Essa é pra quem curte Duna

Pra quem conhece, vai entender de primeira.

Na boa, sem fazer spoil, esse livro é um dos melhores que eu já li, tem espaço especial dedicado a ele na minha estante. 
Ele simplesmente mistura à ficção científica elementos de religião, filosofia, política e ecologia. Muito avançado para o seu tempo, e praticamente profético se levarmos em conta o caminho que estamos trilhando rumo ao esgotamento da água potável do planeta. 

Leitura recomendada. 

Postagens populares

Marcadores

delphi (60) C# (31) poo (21) Lazarus (19) Site aos Pedaços (15) sql (13) Reflexões (10) .Net (9) Humor (9) javascript (9) ASp.Net (8) api (8) Básico (6) Programação (6) ms sql server (5) Web (4) banco de dados (4) HTML (3) PHP (3) Python (3) design patterns (3) jQuery (3) livros (3) metaprogramação (3) Ajax (2) Debug (2) Dicas Básicas Windows (2) Pascal (2) games (2) linguagem (2) música (2) singleton (2) tecnologia (2) Anime (1) Api do Windows (1) Assembly (1) Eventos (1) Experts (1) GNU (1) Inglês (1) JSON (1) SO (1) datas (1) developers (1) dicas (1) easter egg (1) firebird (1) interfaces (1) introspecção (1) memo (1) oracle (1) reflexão (1)