Explicando:
Hoje eu já importo o conteúdo de um xlsx para meu banco utilizando um controle e com uma grid eu pesquiso o conteúdo dessas planilhas e baixo as que me interessam. O que eu gostaria de fazer é:
- Fazer um upload de massivo de planilhas salvando o conteúdo de cada uma delas no banco
OU
-
Fazer o upload do binário e pesquisar dentro dos arquivos uma informação
Para fazer o upload de um XLSX estou utilizando o seguinte código:
OnValidate:
//===== Processamento Principal da Carga do Excel
m_php_cargaExcel();
//===== Monta o endereço absoluto do arquivo no servidor
$arq1 = $_SESSION[‘scriptcase’][‘cargaRazao’][‘glo_nm_path_doc’].’/’.{arquivo};
E utlizando este método php: m_php_cargaExcel
//===== Realiza o chamado da biblioteca PHPExcel, que esta incluida no SC
sc_include_lib(“excel”);
//===== Variavel que possui o endereço do Planilha
$rutaXLS = $_SESSION['scriptcase']['controlCargaExcel']['glo_nm_path_doc'].'/'.{arquivo};
//===== Carga do Arquivo informado
$objPHPExcel=PHPExcel_IOFactory::load($rutaXLS);
//===== Leitura das linhas do Excel
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet){
//===== Ttitulo da Celula do Excel
$worksheetTitle = $worksheet->getTitle();
//===== Quantidade de Linhas
$highestRow = $worksheet->getHighestRow();
//===== Quantidade de Colunas
$highestColumn = $worksheet->getHighestColumn();
//===== iremos acessar a linha que tem informações, iniciar pela linha 2
//===== linha 1 contem o cabeçalho
for ($row=2;$row<= $highestRow; ++ $row){
//===== Coluna A
$cell = $worksheet -> getCellByColumnAndRow (0, $row);
$colunaA = $cell ->getValue();
//===== Coluna B
$cell = $worksheet -> getCellByColumnAndRow (1, $row);
$colunaB = $cell ->getValue();
//===== Coluna C
$cell = $worksheet -> getCellByColumnAndRow (2, $row);
$colunaC = $cell ->getValue();
$insert_sql = "INSERT INTO dcsF (colunaA, colunaB, colunaC)
VALUES ('$colunaA', '$colunaB', '$colunaC')";
sc_exec_sql($insert_sql);
sc_commit_trans();
}
}
Códigos de um webnar scriptcase. Esse código não funciona se tento fazer um upload massivo.
E quanto a ler o conteúdo do arquivo XLSX eu achei isso: – mas não entendi como implementar numa consulta no scriptcase:
$path = "..."; ///the folder path
$theFilePath = "";
$theFileName = glob ($path . "*.xls");
//Read more than one file here
for($j = 0; $j< count($theFileName); $j++) {
$theFilePath = $theFileName[$j];
$excel = new Spreadsheet_Excel_Reader();
$excel->setOutputEncoding('CP1251');
$excel->setUTFEncoder('mb_convert_encoding');
error_reporting(E_ALL ^ E_NOTICE);
//echo $theFileName[$j];;
echo "<br />";
echo $theFilePath;
echo "<br />";
$excel->read($theFilePath);
.
.
.// Do what u want display here
}