2011-11-22 19 views
9

के साथ एक MySQL तालिका में एक एक्सेल फ़ाइल आयात करें ठीक है, इसलिए मैं एक्सेल .xls शीट में डेटा दिखाने के लिए php प्राप्त करने में सक्षम हूं लेकिन यह वही डेटा मैं अपनी तालिका में सम्मिलित करने में सक्षम होना चाहता हूं। मैं, वह हिस्सा यह पता लगाने नहीं कर पा रहे यहाँ मैं अब तक क्या मिला है:PHPExcel

$path = $_GET['file']; 
include("../class/sql.php"); 
require '../class/PHPExcel.php'; 
require_once '../class/PHPExcel/IOFactory.php'; 
$objPHPExcel = PHPExcel_IOFactory::load($path); 
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
    $worksheetTitle  = $worksheet->getTitle(); 
    $highestRow   = $worksheet->getHighestRow(); // e.g. 10 
    $highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
    $nrColumns = ord($highestColumn) - 64; 
    echo '<br>Data: <table width="100%" cellpadding="3" cellspacing="0"><tr>'; 
    for ($row = 1; $row <= $highestRow; ++ $row) { 

     echo '<tr>'; 
     for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
      $cell = $worksheet->getCellByColumnAndRow($col, $row); 
      $val = $cell->getValue(); 
      if($row === 1) 
      echo '<td style="background:#000; color:#fff;">' . $val . '</td>'; 
      else 
       echo '<td>' . $val . '</td>'; 
     } 
     echo '</tr>'; 
    } 
    echo '</table>'; 
} 

btw PHPExcel भयानक है और मैं समय पूरी तरह से समझने के लिए यह सब के माध्यम से पढ़ने के लिए नहीं था :(मेरे पास है अग्रिम में बुधवार से इस बारी करने में .. धन्यवाद

संपादित करें:। इस विचार है कि यह मान do..the चाहिए भाग एक मैं को लेकर अनिश्चित हूं है

$sql = "insert into tablename (col1, col2, col3) values(...)"; 
//start at row 2 so headers are not inserted 
for ($row = 2; $row <= $highestRow; ++ $row) { 

    for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
     $cell = $worksheet->getCellByColumnAndRow($col, $row); 
     $val = $cell->getValue(); 
     //here's my prob.. 
     echo $val; 
    } 
    $result = mysql_query($sql); 
} 
+0

क्या यह होमवर्क है? यदि हां, तो क्या आप इसे इस तरह टैग कर सकते हैं .... – Jason

+0

अरे नहीं, यह होमवर्क नहीं है, यह एक स्वतंत्रता है जिसे मैंने निपटाया और आखिरी मिनट उन्होंने इस विकल्प के लिए पूछा और पूरी परियोजना बुधवार तक होनी चाहिए। अगर यह .NET में होता तो मैं अब तक किया जाता था लेकिन इसे php में किया जाना था :( – Andres

+0

आप अपनी MySQL तालिका की तुलना में फ़ाइल की तरह क्या दिखते हैं? – Jason

उत्तर

7

आप एक सरणी बनाने चाहिए और इस तरह डेटाबेस में इसे स्टोर करें उदाहरण के लिए:

for ($row = 2; $row <= $highestRow; ++ $row) { 
$val=array() 
for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
    $cell = $worksheet->getCellByColumnAndRow($col, $row); 
    $val[] = $cell->getValue(); 
    //here's my prob.. 
    //echo $val; 
} 

$sql="insert into tablename (col1, col2, col3) values(`".$val[0]."`, `".$val[1]."`, `".$val[2].")"; 
$result = mysql_query($sql); 


} 
+0

यह शानदार लग रहा है, मैंने अभी तक परीक्षण नहीं किया है क्योंकि मुझे वर्तमान में परिवर्तन अपलोड करने के लिए FTP तक पहुंच नहीं है, लेकिन जैसे ही मैं इसे आजमाता हूं, मैं इसे उत्तर के रूप में चिह्नित करूंगा। धन्यवाद! – Andres

+0

धन्यवाद यह खूबसूरती से काम किया !! – Andres

1

की जाँच करें यदि आप ऐसा करने PHPExcel उपयोग करना चाहते हैं: तो

<?php 
//include the following 2 files 
require 'Classes/PHPExcel.php'; 
require_once 'Classes/PHPExcel/IOFactory.php'; 

$SERVER = 'localhost'; 
$USERNAME = 'username'; 
$PASSWORD = 'password'; 
$DB = 'database'; 
$DSN = "mysql:host=".$SERVER.";dbname=".$DB.""; 
$connection = new PDO($DSN,$USERNAME,$PASSWORD); 

$path = "test.xlsx"; 

$objPHPExcel = PHPExcel_IOFactory::load($path); 
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { 
    $worksheetTitle  = $worksheet->getTitle(); 
    $highestRow   = $worksheet->getHighestRow(); // e.g. 10 
    $highestColumn  = $worksheet->getHighestColumn(); // e.g 'F' 
    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); 
    $nrColumns = ord($highestColumn) - 64; 
    echo "<br>The worksheet ".$worksheetTitle." has "; 
    echo $nrColumns . ' columns (A-' . $highestColumn . ') '; 
    echo ' and ' . $highestRow . ' row.'; 
    echo '<br>Data: <table border="1"><tr>'; 
    for ($row = 1; $row <= $highestRow; ++ $row) { 
     echo '<tr>'; 
     for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
      $cell = $worksheet->getCellByColumnAndRow($col, $row); 
      $val = $cell->getValue(); 
      $dataType = PHPExcel_Cell_DataType::dataTypeForValue($val); 
      echo '<td>' . $val . '<br>(Typ ' . $dataType . ')</td>'; 
     } 
     echo '</tr>'; 
    } 
    echo '</table>'; 
} 

for ($row = 2; $row <= $highestRow; ++ $row) { 
    $val=array(); 
for ($col = 0; $col < $highestColumnIndex; ++ $col) { 
    $cell = $worksheet->getCellByColumnAndRow($col, $row); 
    $val[] = $cell->getValue(); 
} 

$Connection="INSERT INTO `users` (name, family, type) VALUES ('".$val[1] . "','" . $val[2] . "','" . $val[3]. "')"; 

} 
?>