Olá Galera, Belza?
Estou precisando dar carga numa tabela, a partir de uma planilha Excel! Eu gostaria de saber se alguém de vocês já passaram por esta necessidade? E que pudessem dar um Help! Desde já ficaria muito agradecido!
Daniel M Carniero
Olá Galera, Belza?
Estou precisando dar carga numa tabela, a partir de uma planilha Excel! Eu gostaria de saber se alguém de vocês já passaram por esta necessidade? E que pudessem dar um Help! Desde já ficaria muito agradecido!
Daniel M Carniero
Daniel,
Cara! Quase consegui, o problema é na hora do SC entender o SQL para leitura de dados contidos na planilha. Os passos que fiz:
Instalei o AccessDatabaseEngine.exe para Office 2010 (encontrado no site da microsoft), pois minha máquina não tinha os drives de ODBC atualizados necessários;
Adicionei uma Fonte de Dados de Sistema para o Microsoft Excel Driver (*.xls) pelo Administrador de ODBC;
Cada planilha do arquivo .xls é considerado uma tabela e a primeira linha o nome dos campos, então;
A parte do quase: para fazer select na planilha é necessário colocar o nome dela entre colchetes e com $ no final e o SC e PHP entendem que ali entrarão variáveis e dá erro na geração.
Procure por uma bilbioteca chamada excel_reader.php, coloque ela em uma pasta Excel por exemplo dentro de seu projeto, o arquivo vc pode importar ele usando Documento(nome do arquivo) e depois tente o codigo abaixo:
require_once “…/Excel/excel_reader.php”;
$file = $this->Ini->path_doc.’/’.{planilha};
$data = new Spreadsheet_Excel_Reader($file);
$totalLinhas = $data->rowcount();
$totalColunas= $data->colcount();
for ($i = 1; $i <= 1000; $i++){
if ($data->val($i,1,0) == “”) {
break;
}
$coluna1 = trim($data->val($i,1,0));
$coluna2 = $data->val($i,2,0);
$coluna3 = $data->val($i,3,0);
$coluna4 = $data->val($i,4,0);
$coluna5 = $data->val($i,5,0);
$coluna6 = $data->val($i,6,0);
$coluna7 = $data->val($i,7,0);
$coluna8 = $data->val($i,8,0);
$coluna9 = $data->val($i,9,0);
$coluna10 = $data->val($i,10,0);
$coluna11 = $data->val($i,11,0);
$coluna12 = $data->val($i,12,0);
$coluna13 = $data->val($i,13,0);
$coluna14 = $data->val($i,14,0);
}
espero ter te ajudado.
Agostinho
Olá Agostinho!
Muito obrigado pela ajuda!
Como essa planilha vai ser alimentada pelo usuário, O Sistema nunca saberia quantas linhas teria a planilha! Então Eu implementei a seguinte linha:
for( $i=5; $i <= $data->rowcount($sheet_index=0); $i++ )
Começei a ler a partir da Linha 5 devido que a mesma tem um Cabeçalho, até o final!
Olha valeu mesmo pela dica!
Atenciosamente;
Daniel M Carneiro
Sugestão:
usando com o sc, utilizem a macro:
sc_include_lib(“Lib1”, “Lib2”, …)
Esta macro é usada para selecionar dinamicamente as bibliotecas da aplicação.
Bibliotecas PHP
Bibliotecas JavaScript
fpdf Jquery
fpdf_html jquery_thickbox
excel jquery_blockui
rtf tiny_mce
Ex. 1:
sc_include_lib (“fpdf”);
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont(‘Arial’,‘B’,16);
$pdf->Cell(40,10,‘Saida de texto!’);
$pdf->Output();
Obrigado pela dica Harold…
Olá Haroldo e Agostinho, Boa tarde!
Obrigado pelas dicas até o momento! Mas estou precisando de outro Help! É o seguinte:
$file = $this->Ini->path_doc.’/’.{planilha}; // esta linha de instrução pega uma planilha previamente vinda de um campo tipo Imagem->Nome de Arquivo de uma Aplicação tipo controle, depois envio via sc_redir() para uma outra aplicação do Blank! Bom é o seguinte: Na minha máquina funciona uma maravilha! Mas na hora que publiquei no servidor do cliente, Ele dá uma mensagem de Permissão! Portanto dá um pau, e não continua! Na aplicação blank Eu tenho o seguinte código no
Evento OnExecute:
error_reporting(E_ALL ^ E_NOTICE);
require_once “…/excel/excel_reader2.php”;
$file = $this->Ini->path_doc."/".[planinha] // planilha recebo da outra aplicação
$data = new Spreadsheet_Excel_Reader($file);
echo “
echo "
Agente | Nome do Cliente | Contrato | ";
---|
// final do Código
Ele não deixa escrever na pasta : /scriptcase/file/img
Troquei as permissões da Pasta para Escrita e meso assim continua o problema!
Gostaria de saber se vocês tem alguma dica para me passar!
Desde já Obrigado!
Daniel M Carniero
Bom Dia, tente dar permissão na pasta /scriptcase/file toda, se for no linux use chmod -R 777 /scriptcase/file e dai tente novamente…