2010-01-14 34 views

Respuesta

18

Importar desde archivos de Excel (XLS) es mucho más difícil que imprimir desde archivos CSV. Por lo general, puedo guardar mi XLS a CSV con Excel y luego trabajar en este CSV con PHP ...

mirada en función de PHP fgetcsv en: http://ca.php.net/manual/en/function.fgetcsv.php

<?php 
$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 
?> 

Si aún desea cargar XLS directamente desde PHP es posible (pero qué tan confiable) ... Una búsqueda rápida resultó en http://sourceforge.net/projects/phpexcelreader/ que podría ser útil.

+0

Por otro lado, para Excel 2007, http://phpexcel.codeplex.com/ es muy agradable. – AlexV

0

La mejor opción es exportar desde Excel a un archivo CSV (valores separados por comas). Estos archivos son fáciles de analizar y cargar. Si está leyendo directamente desde un archivo XLS, no estoy seguro de cómo hacerlo. Es posible que desee ver si hay una biblioteca para PHP que pueda leer archivos de datos de Excel.

8

Bastante posible. Puede guardar su archivo de Excel como un archivo CSV y usar fgetcsv() para leer ese archivo en PHP. fgetcsv() analizará sus datos en una matriz, que luego puede crear consultas SQL para poner en su base de datos.

Si todo lo que está haciendo es ponerlo en una base de datos, es posible que pueda pasar por alto la necesidad de un script PHP por completo y sólo tiene que utilizar la sintaxis de MySQL LOAD DATA INFILE en su archivo CSV en su lugar:

LOAD DATA LOCAL INFILE '/importfile.csv' 
INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(field1, filed2, field3); 
0

Here es un tutorial sobre la lectura/escritura de una hoja de cálculo de Excel directamente (sin tener que exportar a CSV). Los paquetes necesarios están disponibles en SourceForge y PEAR (véase el artículo).

-1
<? 
i$db = mysql_connect(“localhost”, “root”, “”) or die(“Could not connect.”); 

if(!$db) 

die(“no db”); 

if(!mysql_select_db(“test”,$db)) 

die(“No database selected.”); 

if(isset($_POST['submit'])) 

{ 

$filename=$_POST['filename']; 

$handle = fopen(“$filename”, “r”); 

while (($data = fgetcsv($handle, 1000, “,”)) !== FALSE) 

{ 

$import=”INSERT into sample(name,email) values(‘$data[0]‘,’$data[1]‘)”; 

mysql_query($import) or die(mysql_error()); 

} 

fclose($handle); 

print “Import done”; 

} 

else 

{ 

print “<form action=’import.php’ method=’post’>”; 

print “Type file name to import:<br>”; 

print “<input type=’text’ name=’filename’ size=’20′><br>”; 

print “<input type=’submit’ name=’submit’ value=’submit’></form>”; 

} 
?> 

Source

Cuestiones relacionadas