read - spout php example
PHP importa Excel en la base de datos(xls y xlsx) (5)
Escribí una clase heredada:
<?php
class ExcelReader extends Spreadsheet_Excel_Reader {
function GetInArray($sheet=0) {
$result = array();
for($row=1; $row<=$this->rowcount($sheet); $row++) {
for($col=1;$col<=$this->colcount($sheet);$col++) {
if(!$this->sheets[$sheet][''cellsInfo''][$row][$col][''dontprint'']) {
$val = $this->val($row,$col,$sheet);
$result[$row][$col] = $val;
}
}
}
return $result;
}
}
?>
Así que puedo hacer esto:
<?php
$data = new ExcelReader("any_excel_file.xls");
print_r($data->GetInArray());
?>
Intenté buscar algunos complementos para importar archivos de Excel a la base de datos MySQL, uno de ellos es http://code.google.com/p/php-excel-reader/
La herramienta es tan poderosa que muestra todo el contenido de Excel en html.
Sin embargo, creo que solo necesito leer el archivo de Excel y extraer el contenido, por ejemplo, en una matriz, y luego escribir una declaración SQL para ingresar a la base de datos.
¿Habría buenos códigos y paquetes? ¡Gracias!
Este es el mejor complemento con la documentación adecuada y ejemplos
https://github.com/PHPOffice/PHPExcel
Punto más: puede pedir ayuda en su foro de discusión y recibirá una respuesta en un día del propio autor, realmente impresionante.
Si guarda el archivo excel como un archivo CSV, puede importarlo a una base de datos mysql usando herramientas como PHPMyAdmin
No estoy seguro de si esto ayudaría en su situación, pero un archivo CSV, ya sea manual o programáticamente, sería mucho más fácil de analizar en una base de datos que un archivo de Excel, pensé.
EDITAR: Sin embargo, sugeriría mirar las otras respuestas en lugar de las mías, ya que la respuesta de @diEcho parece más apropiada.
Si puede convertir .xls a .csv antes de procesarlo, puede usar la siguiente consulta para importar el csv a la base de datos:
load data local infile ''FILE.CSV'' into table TABLENAME fields terminated by '','' enclosed by ''"'' lines terminated by ''/n'' (FIELD1,FIELD2,FIELD3)
A veces necesito importar archivos xlsx grandes a la base de datos, así que uso spreadsheet-reader
ya que puede leer el archivo por fila. Es una forma muy eficiente de importar memoria .
<?php
// If you need to parse XLS files, include php-excel-reader
require(''php-excel-reader/excel_reader2.php'');
require(''SpreadsheetReader.php'');
$Reader = new SpreadsheetReader(''example.xlsx'');
// insert every row just after reading it
foreach ($Reader as $row)
{
$db->insert($row);
}
?>