Saudações, pessoal! Graças a Deus eu também estava a precisar duma aplicação que permitisse o usuário importar dados do Excel para o banco, pesquisei, pesquisei, inclusive aqui no grupo e finalmente, encontrei uma solução simples em php e só adaptei no Scriptcase. Se precisarem da solução é só solicitarem aqui que mostrarei os passos que vai funcionar correctamente.
Atenciosamente,
Belmiro Constantino
Oi @belmiro, tudo bem?
Vc poderia disponibilizar o código?
Tentei oq os colegas informaram, mas não consegui implementar, fica em loop direto, não sei oq pode estar havendo.
Eu tenho 23 campos do meu arquivo para importar, mas não são todos os campos da tabela Clientes, só quero estes q estao no código mesmo.
Segue o código:
// Pegando o arquivo com caminho
$caminho = $this->Ini->path_doc;
$arq = $caminho.’/’.{arquivo};
// Processando a leitura
$fp = fopen($arq,‘r’);
// Pegando a primeira linha (cabeçalho)
$linha = fgets($fp);
// Pegando o caracter separador na coluna 12
$caracter = substr($linha,23,1);
// Processando arquivo
while ($dados = fgetcsv($fp, filesize($arq), $caracter))
$tabela[] = $dados;
fclose($fp);
$insert_sql = ‘INSERT INTO clienteswb_teste (’
.‘id_empresa, pessoa, cpf, cnpj, rg, nome, nasc, sexo, estcivil,’
.‘endres, numres, compres, baires, cidres, estres, cepres, telres1,’
.‘cel1, email, nomeconj, nascconj, identifica, nacionalidade) VALUES’;
foreach ($tabela as $campo)
{
if (empty($campo[0])) {
break;
}
$check_sql = ‘SELECT * FROM clienteswb_teste ’
. ‘WHERE id_empresa = "’.[usr_empresa].’"’;
/$check_sql = "SELECT id_empresa, pessoa, cpf, cnpj, rg, nome, nasc, sexo, estcivil, endres, numres, compres, baires,
cidres, estres, cepres, telres1, cel1, email, nomeconj, nascconj, identifica, nacionalidade FROM clienteswb_teste
WHERE id_empresa = ".[usr_empresa];/
sc_select(dataset, $check_sql);
if (false == {dataset}) // Error while accessing database
{
sc_error_message(‘Erro durante acesso ao TAB_LOJAS.’);
}
elseif (!{dataset}->EOF) // Existe na tabela
{
continue;
}
elseif ({dataset}->EOF) // Não existe na tabela
{
$id_empresa = $campo[0];
$pessoa = ‘’;
$cpf = ‘’;
$cnpj = ‘’;
$rg = ‘’;
$nome = ‘’;
$nasc = ‘0000-00-00’;
$sexo = ‘’;
$estcivil = ‘’;
$endres = ‘’;
$numres = ‘’;
$compres = ‘’;
$baires = ‘’;
$cidres = ‘’;
$estres = ‘’;
$cepres = ‘’;
$telres1 = ‘’;
$cel1 = ‘’;
$email = ‘’;
$nomeconj = ‘’;
$nascconj = ‘0000-00-00’;
$identifica = ‘’;
$nacionalidade = ‘’;
// Monta a parte de inserção dos campos
$insert_sql2 = " ('".$id_empresa."','".$pessoa."','".$cpf."','".$cnpj."','".$rg."','".$nome."','";
$insert_sql2 .= "'".$nasc."','".$sexo."','".$estcivil."','".$endres."','".$numres."','".$compres.
"','".$baires."','".$cidres."','".$estres."','".$cepres."','".$telres1."','".$cel1."','";
$insert_sql2 .= "'".$email."','".$nomeconj."','".$nascconj."','".$identifica."','".$nacionalidade."),";
}
}
if (empty($insert_sql2)) {
sc_error_message(“Não há registros a atualizar, verifique”);
}
else {
// Tira o último caractere (vírgula extra)
$insert_sql = substr($insert_sql, 0, -1);
// Inserir registros
sc_exec_sql($insert_sql);
// Pega o número de registros inseridos
$importados = mysql_affected_rows();
sc_error_message("Clientes Importados: " . $importados);
}
Obrigada