Drupal读取Excel并导入数据库实例,文件创建新实例

先延续好数据库,然后打开左边 对象财富管理器,选取数据库  右键单击
—> 选取导入数据层应用程序

PHPExcel 是用来操作Office Excel
文书档案的3个PHP类库,它依照微软的OpenXML标准和PHP语言。可以使用它来读取、写入不一样格式的电子表格,如
Excel (BIFF) .xls, Excel 二零零五 (OfficeOpenXML) .xlsx, CSV,
Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

mysql 导入数据库与数据库导入

Drupal读取Excel并导入数据库实例

 这篇小说首要介绍了Drupal利用PHPExcel读取Excel并导入数据库的事例,须求的对象能够参照下

PHPExcel 是用来操作Office Excel
文书档案的四个PHP类库,它依据微软的OpenXML标准和PHP语言。能够运用它来读取、写入分歧格式的电子表格,如
Excel (BIFF) .xls, Excel 二〇〇七 (OfficeOpenXML) .xlsx, CSV,
Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

 

Drupal读取Excel并导入数据库实例,文件创建新实例。一、Drupal 通过Library 调用 PHPExcel

将PHPExcel 下载后,上传到Drupal目录:sites/all/libraries/PHPExcel

假诺您的类型中装置了libraries模块,能够通过libraries_load($name);来调用。

若是没有安装libraries模块,能够省略的使用下列代码来调用:

 

 代码如下:require(“sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php”);

 

专注为了确认保证Excel全体导入,程序能够会话不短的流年来进行。所以在代码起首部分参与:

 

代码如下:set_time_limit(0);

来保管运转时刻不受限制。

② 、Drupal 读取Excel并导入到数据库

Drupal 达成上传Excel文件后,读取Excel
内容,写入到数据库,打字与印刷导入结果消息。

归结起来有诸如此类几点:

1.Drupal 读取Excel 多行多列内容,列数从1到n,行数也是1到n。

2.Drupal 基于数据库结构 n 个字段分别用于存放Excel 1到n列,如若Excel
的列数很多,可以把n列值存放在1个字段中。

3.那里本人化解的是Excel n列值存放到MySQL n个字段中(n不是十分大)

 

那就是在Drupal最终交给上传文件后的函数:

 

 代码如下:<?php 

function excel_upload_form_submit($form, &$form_state) { 

  set_time_limit(0); 

  $timestamp = time(); 

  // 确认保障Excel文件上传了 

  if ($file = file_save_upload(‘file’)) { 

    $row = 0; //解析行数 

    $paseRows = 0; //跳过行数 没有值的行 

    $insertRows = 0; //插入行数 

    $table = array( 

      ‘dbfield1′, 

      ‘dbfield2′, 

      ‘dbfield3, 

      ‘dbfield4′, 

      ‘dbfield5′, 

      … 

      ‘dbfieldn’, 

    ); 

    require(“sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php”); 

    if(($handle = fopen ( $file->filepath, “r” )) !== FALSE) { 

      $PHPExcel = new PHPExcel (); 

      $PHPReader = new PHPExcel_Reader_Excel2007 (); 

      if (! $PHPReader->canRead ( $file->filepath )) { 

        $PHPReader = new PHPExcel_Reader_Excel5 (); 

        if (! $PHPReader->canRead ( $file->filepath )) { 

          echo ‘no Excel’; 

          return; 

        } 

      } 

      $PHPExcel = $PHPReader->load ( $file->filepath ); 

      $currentSheet = $PHPExcel->getSheet ( 0 ); 

      /**赢得一共有微微列*/ 

      $allColumn = $currentSheet->getHighestColumn(); 

     
//取得共有多少列,若不应用此静态方法,获得的$col是文本列的最大的英文大写字母 

      $col =
PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn()); 

      /**获取一共有稍许行*/ 

      $allRow = $currentSheet->getHighestRow(); 

      //循环读取每一种单元格的剧情。注意行从1开始,列从A初叶 

      for($rowIndex = 2; $rowIndex <= $allRow; $rowIndex++) { 

        $token_db = $row_db = $field = array(); 

        $i = 0; 

        $query = ”; 

        for($colIndex = 0; $colIndex <= $col; $colIndex++) { 

          //$addr = $colIndex.$rowIndex; 

          //$cell = $currentSheet->getCell($addr)->getValue(); 

          $cell = $currentSheet->getCellByColumnAndRow($colIndex,
$rowIndex)->getValue(); 

          $cell = trim($cell); 

          if($cell instanceof PHPExcel_RichText) { 

            //富文本转换字符串 

            $cell = $cell->__toString(); 

          } 

          if ($colIndex == ‘A’ && !intval($cell)) { 

            $paseRows++; 

            break; 

          } 

          $field[] = $table[$i]; 

          $token_db[] = “‘%s'”; 

          $row_db[] = $cell; 

          $query .= $table[$i].” = ‘%s’, “; 

          $i++; 

        } 

        $row++; 

        if ($row_db) { 

          db_query(‘INSERT INTO {db_import} (‘. implode(‘, ‘, $field)
.’, created) VALUES(‘. implode(‘, ‘, $token_db) .’, %d)’,
array_merge($row_db, array($timestamp))); 

          $insertRows++; 

        } 

      } 

      fclose ( $handle ); 

    } 

    drupal_set_message(t(‘文件 @file 导入成功.’, array(‘@file’ =>
$file->filename))); 

   
drupal_set_message(“解析”.$row.”条数据甘休,新增共”.$insertRows.”条数据,没有试题类型ID的”.$paseRows.”条数据。”); 

  } 

  else { 

    drupal_set_message(t(‘File to import not found.’), ‘error’); 

    $form_state[‘redirect’] = ‘admin/content/db/import’; 

    return; 

  } 

?>

 

下面代码部分注意一下几点:

 

 代码如下:

$allColumn = $currentSheet->getHighestColumn();
 //获取的列为英文大写字母的数组索引。

$col =
PHPExcel_Cell::columnIndexFromString($currentSheet->getHighestColumn());
//将英文大写字母索引格式化为数字,索引值从0开端总结。

 

本代码帮助读取Excel 二零零五 及前面的格式。

 

那篇作品首要介绍了Drupal利用PHPExcel读取Excel并导入数据库的例证,必要的朋友能够参见下
PHPExcel 是用来操作…

依据提醒向导一步步走就行了

一、Drupal 通过Library 调用 PHPExcel 将PHPExcel 下载后,上传到Drupal目录:sites/all/libraries/PHPExcel
倘使你的项目中设置了libraries模块,能够通过libraries_load($name);来调用。
一经没有安装libraries模块,能够简简单单的采用下列代码来调用:

mysql教程 导入数据库教程与数据库导入
/*
时下 mysql 帮助的免费备份工具有:

 

复制代码 代码如下:

mysqldump、mysqlhotcopy

图片 1

require(“sites/all/libraries/PHPExcel/PHPExcel/IOFactory.php”);

,还足以用 sql 语法实行备份:

 

留神为了确认保证Excel全体导入,程序能够会话非常短的小时来拓展。所以在代码起头部分加入:

backup table

图片 2

复制代码 代码如下:

或者

admin

网站地图xml地图