简体   繁体   English

仅使用 PHP 将 Excel 数据导入 mysql 1 张

[英]Import Excel Data to mysql 1 sheet only using PHP

I am trying to import a grade sheet into mysql database but that excel file have multiple sheet how can i make it so only a specified sheet will be going into my database我正在尝试将成绩单导入 mysql 数据库,但是 excel 文件有多个工作表我如何制作它,所以只有一个指定的工作表会进入我的数据库

$uploadfile=$_FILES['uploadfile']['tmp_name'];

require 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
$objExcel =PHPExcel_IOFactory::load($uploadfile);
foreach($objExcel->getWorksheetIterator() as $worksheet)
{
    $highestrow=$worksheet->getHighestRow();

    for($row=8;$row<=$highestrow;$row++){

   $name=$worksheet->getCellByColumnAndRow(1,$row)->getValue();
   $finalgrade=$worksheet->getCellByColumnAndRow(15,$row)->getValue();
  

    if($finalgrade != ''){

   $insertqry = "INSERT INTO `user`(`stud_name`, `final_grade`) VALUES ('$name','   $finalgrade')";
     $insertres = mysqli_query($con,$insertqry);
   }  
    }

}

As far as I understand you are looking to get data from a specific sheet.据我了解,您希望从特定工作表中获取数据。

In PHPExcel there is this function: setActiveSheetIndex (sheet_index)PHPExcel中有这个 function: setActiveSheetIndex (sheet_index)

You can try like this:你可以这样尝试:

$uploadfile = 'test.xlsx';

$objExcel = PHPExcel_IOFactory::load($uploadfile);

$objData = PHPExcel_IOFactory::createReader('Excel2007');

//read only
$objData->setReadDataOnly(true);

$objPHPExcel = $objData->load($uploadfile);

// Select sheet to get
$sheet = $objPHPExcel->setActiveSheetIndex(1);

$Totalrow = $sheet->getHighestRow();
$LastColumn = $sheet->getHighestColumn();

$TotalCol = PHPExcel_Cell::columnIndexFromString($LastColumn);

$data = [];

// Proceed to loop through each data cell
// Repeat rows, Since the first row is assumed to be the column header, we will loop the value from line 2
for ($i = 2; $i <= $Totalrow; $i++) {
    //---- Loop column
    for ($j = 0; $j < $TotalCol; $j++) {
        // Proceed to get the value of each cell into the array
        $data[$i - 2][$j] = $sheet->getCellByColumnAndRow($j, $i)->getValue();;
    }
}
var_dump($data);

i just deleted the foreach and add getSheetName()我刚刚删除了 foreach 并添加了 getSheetName()

require 'PHPExcel/Classes/PHPExcel.php';
require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';

$objExcel =PHPExcel_IOFactory::load($uploadfile);
$worksheet = $objExcel->getSheetByName('GEN.AVERAGE');

    $highestrow=$worksheet->getHighestRow();

    for($row=8;$row<=$highestrow;$row++){

     $name=$worksheet->getCellByColumnAndRow(1,$row)->getValue();
 $finalgrade=$worksheet->getCellByColumnAndRow(15,$row)->getValue();


 if($finalgrade != ''){

 $insertqry = "INSERT INTO `user`(`stud_name`, `final_grade`) VALUES ('$name','   $finalgrade')";
   $insertres = mysqli_query($con,$insertqry);
 }  
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM