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++.
Pergunta
fefefe
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:
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
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.