你在这里

Drupal导入Excel表格的正确姿势

主标签

去年因为做一个项目,遇到向DRUPAL中导入EXCEL数据的问题,顺手写了FEEDS EXCEL模块教程。到目前为止,阅读量已有2000+,看来不少网友都遇到了这类需求。

然而,今天我想说的是,对不住大家了,我把大伙都引到沟里去了crying。鄙视一下我自己no

事情是这样的。12月1日,DRUPALCHINA群友[佛山]MJ问了我一个他在使用FEEDS EXCEL模块时遇到的问题,很不幸,我也不知道怎么解决。后来我到DRUPAL主站搜了一下,推荐他试试FEEDS XLS模块,第二天他反馈说很好用。昨晚我自己测试了一下,果然导入EXCEL文件,用FEEDS XLS才是王道!王道。。。王道。。。。。。而且还发现,这个模块居然我去年就下载到服务器上了,时间比我测试FEEDS EXCEL还早3天!当时怎么没用它呢?这脑子是进了多少水啊!!!crying

从今以后,导入EXCEL文件,一定要用

FEEDS XLS!

FEEDS XLS!

FEEDS XLS!

重要的事情再说三遍。

模块的使用跟导入CSV文件一样简单。简单说两点,其他都一样。

一是选择解析器时,如果FEEDS EXCEL和FEEDS XLS模块都安装了,注意不要选错,要选下图箭头所指的这个。

feeds_parser.png二是如果EXCEL文件第一行是标题行的话,解析器设置就不用改了,保持默认就好。这样做字段映射时,数据源直接填写表中的标题就行了。

feeds_parser_xls.pngFEEDS XLS模块有几个优点:

  1. 使用简单,支持汉字标题。
  2. 速度快。实测600条记录用时96秒,比转CSV稍慢,但远远快于FEEDS EXCEL。测试环境与去年写的FEEDS性能评测:csv VS. excel完全一致。
  3. 仍在持续更新,不用担心支持问题。

请看到这个帖子的网友互相转告,让FEEDS EXCEL见鬼去吧。此处应该有掌声。嗯,或者是扔砖声。laugh

Drupal 版本: 

猜你喜欢

今天发现FEEDS XLS模块一个小BUG。如果导入的文件只有一行标题和一行数据,导入时会报错,提示没有数据,但只要多于一行就能正常导入。smiley

也可以使用开发版。开发版还解决了几个其他的问题。

非常不幸的是,这个模块导入日期字段时有BUG,而且至今未修复。某些情况下,导入后的日期会变为1970年1月1日,这可能会大大限制模块的使用。详见https://www.drupal.org/node/1461832

Feeds XLS模块需要PHPExcel库支持,在项目网页上,这个库的链接指向了Github,但我用的是http://phpexcel.codeplex.com/上的下载包,版本1.8.0,解压后放在sites/all/libraries/PHPExcel/下面,然后把Classes目录下的所有文件都移动到这个目录下。Classes目录下才是库文件

Github上的版本新,我没有测试,使用时也要注意移动Classes目录下的文件。

库文件这样移动,会影响第三方对PHPEXCEL的使用的。

feeds xls官网介绍它时可以将phpexcel库放在 sites/all/libraries/PHPExcel/ 和The PHPExcel library should be installed, either in a location that the Libraries module can find (if the Libraries module is installed), or in the feeds_xls folder. The folder should be renamed "PHPExcel".  

这段话讲也能放到模块本身这里。

原来2015-07-24日发布的7.x-1.x-dev版已经解决了,当时看issue列表,有人提供了个补丁,其实补丁反而是错的,根本不需要。

另外也碰到一个问题在选择器对Excel的行数选择时不能保存超过100行的选项,官网上没有相关的反馈。我用的7.x-1.2版本的,看来我也来试下开发版去。