Ir para conteúdo
Fórum Script Brasil
  • 0

Importar dados excel-firebird utilizando c++


fefefe

Pergunta

Oi Galera,

Estou fazendo um programa no c++ builder no qual eu preciso ler uma planilha do excel e armazenar os dados em um banco de dados firebird. Atualmente estou usando o seguinte método:

XL=Variant::CreateObject("excel.application"); // XL é Variant do sistema
XL.OlePropertySet("Visible",false);
XL.OlePropertyGet("Workbooks").OleProcedure("Open",path.c_str());

v0 = XL.OlePropertyGet("Sheets");  // ScTableSheetsObj
Variant nSheetCount = v0.OlePropertyGet("Count");
long max =  nSheetCount;

v0=XL.OlePropertyGet("Sheets",1);
v1=v0.OlePropertyGet("Cells"); 

int i = INICIAL_LINE; //Linha inicial = 1 no caso
int count = 0;
AnsiString tmp; 
char buffer[128];

for (int nlinha = 5; nlinha < row_count; nlinha++)
        {
           vcell=v1.OlePropertyGet("Item",nlinha,1);
           tmp=vcell.OlePropertyGet("Value");
           if (tmp == "")
           {
              this->m_NumRow = nlinha-1;
              nlinha = row_count;
           }
           else
                dados_colunas.push_back(tmp.c_str()); // dados_colunas - vetor

        }
        dados.push_back(dados_colunas); // dados - vetor<vetor>

Após isso, eu insiro os dados no banco utilizando IBPP e insert normal, percorrendo os vetores de dados. Contudo, minha planilha possui aproximadamente 500 linhas, de forma que este método está muito lento. Gostaria de saber se alguém sabe de alguma outra forma mais rápida de importar dados do excel para firebird utilizando c++.

Muito obrigada!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Objetos COM não costumam ser extremamente rápidos, o que é fácil de entender. Mas lentidão é um conceito relativo. Para ler essas 500 linhas demora quanto tempo? Aliás, qual o tempo apenas de leitura, isolando a parte da escrita no BD?

PS: Você programava em XBase?

Link para o comentário
Compartilhar em outros sites

  • 0
Objetos COM não costumam ser extremamente rápidos, o que é fácil de entender. Mas lentidão é um conceito relativo. Para ler essas 500 linhas demora quanto tempo? Aliás, qual o tempo apenas de leitura, isolando a parte da escrita no BD?

PS: Você programava em XBase?

Então, está demorando de 2 a 3 minutos para ler a planilha... Eu queria um jeito mais fácil de ler da planilha excel e armazenar no banco de dados... Acho que os vetores de dados que eu criei não estão bons...

Eu não programava em XBase não, porque?

Obrigada por me responder!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...