用wordpress读取csv文件

时间:2017-11-21 07:41:26

标签: php wordpress

如何使用wordpress读取csv文件,我尝试了下面的代码,但它无法正常工作:

     require_once("PHPexcel/PHPExcel.php");
     $file = "sample.csv"; 
     $excelReader = PHPExcel_IOFactory::createReaderForFile($file);
     $excelObj = $excelReader->load($file);
     $workSheet = $excelObj->getSheet(0);
     $lastRow = $workSheet->getHighestRow();

     for ($row=2; $row <=$lastRow ; $row++) { 
        $col1 = $workSheet->getCell('A'.$row)->getValue();
        var_dump($col1);
     }

我在分离的php文件中尝试了这个并且它可以工作,但是当我把它放在wordpress中时,它不再工作了,我得到了一个错误: 致命错误:未捕获PHPExcel_Reader_Exception:无法打开sample.csv进行阅读!文件不存在。

3 个答案:

答案 0 :(得分:0)

将smaple.csv文件放在wordpress根目录中。将PHPexcel库文件夹放在主题文件夹中,并将上述代码放在functions.php

答案 1 :(得分:0)

更改以下行

$file = "sample.csv"; 

$file = ABSPATH."/sample.csv"; 

您需要提供csv的完整绝对路径。

谢谢!

答案 2 :(得分:0)

对我来说这行得通。 记住一件事

将csv保存为CSV (MS-DOS) (*.csv)格式,然后尝试遵循以下代码

enter image description here

这是我的csv数据示例

NAME;ADDRESS;ZIP;CITY;TELEPHONE;SPONSOR;URL

global $wpdb;
$filename=$_FILES["file"]["tmp_name"];    
if($_FILES["file"]["size"] > 0)
{
  $handle = fopen($filename, "r") or die("Error opening file");
  $i = 0;
  while(($line = fgetcsv($handle)) !== FALSE) {
      if($i == 0) {
          $c = 0;
          foreach($line as $col) {
              $cols[$c] = $col;
              $c++;
          }
      } else if($i > 0) {
          $c = 0;
          foreach($line as $col) {
              $client_data[$i][$cols[$c]] = $col;
              $c++;
          }
      }
      $i++;
  }
  fclose($handle);
  // var_dump($cols);
    $table_name = $wpdb->prefix . 'rlist';
  foreach ($client_data as $client_row){
    if (is_array($client_row)) {
      foreach ($client_row as $value) {
        $savedata = explode(";", $value);
        if(!empty($savedata)){
            $savedata[0] = ($savedata[0]) ? $savedata[0] : null;
            $savedata[1] = ($savedata[1]) ? $savedata[1] : null;
            $savedata[2] = ($savedata[2]) ? $savedata[2] : null;
            $savedata[3] = ($savedata[3]) ? $savedata[3] : null;
            $savedata[4] = ($savedata[4]) ? $savedata[4] : null;
            $savedata[5] = ($savedata[5]) ? $savedata[5] : null;
            $savedata[6] = ($savedata[6]) ? $savedata[6] : null;
          $wpdb->insert(
              $table_name,
              array(
                  'NAME' => $savedata[0],
                  'ADDRESS' => $savedata[1],
                  'ZIP' =>$savedata[2],
                  'CITY' =>$savedata[3],
                  'TELEPHONE' =>$savedata[4],
                  'SPONSOR' =>$savedata[5],
                  'URL'=> $savedata[6]
              )
          );

        }
      }
    }
  }
  fclose($file);

,这是此代码的有效输出。 enter image description here