• 文章介绍
  • 评价建议
  • ExcelForEcms是一个专门为帝国cms系统开发的插件,用于Office Excel文档和ecms系统之间的数据导入、导出、批量修改。支持所有系统模型,不修改任何帝国系统文件,完全遵循帝国中设定的用户权限,多管理员权限配置;特别适合企业站的应用,数据维护人员无需是网站管理员,如大量产品参数的操作、账目内容的操作、批量附件上传等仅操作Excel文档即可;除系统提供的常用处理函数外用户还可以自定义函数对转换过程中的数据做任何处理;插件采用分组操作,理论上不限制数据量的大小。

    帝国版本7.0/7.2/7.5全部支持

    ExcelForEcms7.5  V1.2 全功能版

    插件简介

    ExcelForEcms是一个专门为帝国cms系统开发的插件,用于Office Excel文档和ecms系统之间的数据导入、导出、批量修改。支持所有系统模型,不修改任何帝国系统文件,完全遵循帝国中设定的用户权限,多管理员权限配置;特别适合企业站的应用,数据维护人员无需是网站管理员,如大量产品参数的操作、账目内容的操作、批量附件上传等仅操作Excel文档即可;除系统提供的常用处理函数外用户还可以自定义函数对转换过程中的数据做任何处理;插件采用分组操作,理论上不限制数据量的大小。

    EXCEL数据导入到帝国中:和通用的EXCEL导入Mysql不同的是您不需要考虑ecms系统Mysql数据库的系统字段及主副表等,插件无缝对接帝国系统,就像是用户一条一条录入的内容一样,没有任何区别,无需担心系统字段数据;可以使用系统提供的或自定义的函数对数据进行中间处理,正式导入前可以预览数据;具备增加信息权限时可以对同一系统模型的多个栏目一次性导入;支持本地附件及远程附件批量上传,支持设定附件地址前缀等

    帝国数据导出到EXCEL文档中:选择您需要的数据字段进行导出,可以设定导出条件,按发布时期、按ID段、按发布者等,可以选择审核或未审核数据,未审核数据在EXCEL文档中以红色标记,可以使用系统提供的常用函数或自定义函数对数据做处理再保存到EXCEL文档中,比如时间戳的转换、去HTML代码等;具备栏目访问权限的前提下支持对同一系统模型的多个栏目一次性导出…

    批量修改:可以将导出的数据进行编辑后再批量修改帝国系统中的数据,或者新建数据进行批量修改,和用户在帝国中点击信息的修改按钮修改数据完全一样,不同的是以EXCEL为准对数据进行了批量操作,过程中实时显示正在修改哪一条数据,非常直观,同样可以使用系统提供的或自定义的函数对中间数据进行处理,具备编辑权限的前提下可以一次性对同一系统模型的多个栏目数据进行修改…

    Excel文件管理:可以通过浏览器管理服务器上面的EXCEL文件,删除、预览、下载、上传等

    插件的权限控制:超级管理员可以为后台其他管理员用户设定基于系统模型的插件使用权限,插件运行后再继承帝国系统中设定的用户权限,进行灵活多样的权限控制。

    ExcelForEcms7.5_v1.2全功能版使用教程

    插件安装使用需求:

    1:php版本5.2及以上;php_zip、php_gd2、php_xml扩展必须被启用

    2:session必须能正常使用,客户端cookie开启

    3:“批量修改”浏览器端需js支持,不能禁用

    4:程序使用ZendGuard加密,请确保服务器有 Zend Guard Loader 才能解密运行,这点很重要

    安装步骤:

    1:将ExcelForEcms文件夹复制到\e\extend\下,如果是FTP请使用二进制上传

    2:将ExcelForEcmsList.php放入e/data/html/list/

    3:将ExcelForEcmsAddNews.php放入\e\admin  如果此后台地址被您更改,放入更改后的地址即可

    4:进入帝国后台,修改需要操作的系统模型(系统/数据表与系统模型/管理数据表/管理系统模型/修改/信息列表名称),如下图,填入ExcelForEcmsList

    4:安装完毕,此时进入帝国后台,任意打开该系统模型的一个栏目信息列表页可以看到导入Excel的按钮了,如需卸载,按此步骤返回即可,插件不修改任何系统文件。此时还不能使用本软件,继续为要操作的excel设置好配置文件就可以使用了,请见本文下方的“开始使用”。

    目录结构:

    ExcelForEcms\ AppConfig.php  插件配置文件(插件入口),唯一需要改动的插件系统文件

    ExcelForEcms\Classes   解析引擎PHPExcel类文件目录  PHPExcel版本:1.7.9 更新于2013-06-02

    ExcelForEcms\ Excelfile  用于存放Excel文件及其配置文件,初始时包含了实例数据

    ExcelForEcms\ js  用于存放js文件

    ExcelForEcms\ Template  模板目录,存放各模板文件

    ExcelForEcms\ CheckExcel.php  导入数据前的预览检测程序

    ExcelForEcms\DelExcel.php   EXCEL文件删除执行程序

    ExcelForEcms\ ExcelForEcms.php 导入数据的主程序

    ExcelForEcms\ ExcelForEcmsEdit.php 批量修改数据调度程序

    ExcelForEcms\ ExcelForEcms\ ExcelForEcmsEditEXE.php 批量修改数据执行程序

    ExcelForEcms\ ExcelForEcmsOut.php 导出已审核数据主程序

    ExcelForEcms\ ExcelForEcmsOutCheck.php 导出未审核数据主程序

    ExcelForEcms\FormatFun.php  插件提供的常用格式转换函数库,链接包含了用户自定义函数文件

    ExcelForEcms\GlobalFunc.php  插件系统全局函数

    ExcelForEcms\hinfofun.php  提取并修改自ECMS的信息添加/修改程序,

    ExcelForEcms\UserFun.php  用户自定义函数文件

    ExcelForEcms\ExcelFileManager.php 是Excel文件管理器

    ExcelForEcms\UploadExcel.php 文件上传程序

    测试软件:

    系统初始预带了测试数据,以便您测试和熟悉本插件,数据是以帝国带数据初始安装的新闻模型为对象的,安装完插件,修改新闻模型的信息列表名称为ExcelForEcmsList即可开始测试插件,点击相应按钮看一看效果吧,推荐您先进行此步骤,以便更好的理解下文描述内容。特别说明:测试数据示例在新装帝国程序带测试数据时可用以演示,以ID为1的管理员身份登录操作ID为1的模型(新闻系统模型),您可以测试、熟悉本插件

    开始使用:

    在使用本插件前强烈建议您进入后台或使用帝国备份王备份数据库,以免由于您对本插件的误操作造成对数据的破坏,有了备份您可以放心的还原数据。您也可以安装一套带测试数据的帝国系统来测试熟悉本插件。此外遇到问题请先查看常见问题帮助。

    导入或批量修改,您需要一个excel文件和这个文件的php类型配置文件,导出仅需要一个配置文件即可,同一个系统模型的导入、导出、批量修改使用同一个配置文件,在里面放置所有配置项。导入及批量修改操作先在目录ExcelForEcms\ Excelfile下上传EXCEL文件,然后为这个EXCEL文件建立配置文件(配置内容见下文),修改ExcelForEcms\ AppConfig.php文件,让系统指向这个配置文件,这样在帝国cms管理后台就可以进行相应操作了。

    AppConfig.php配置如下:

    示例:$ExcelFileConfig[1][1] = “Excelfile/yunke_config.php”;

    表示:$ExcelFileConfig[管理员用户ID][数据模型ID]=”EXCEL配置文件地址”;

    管理员ID为该值的管理员登陆帝国后台后有权在属于此数据模型ID的栏目上面使用本插件,按地址加载配置文件执行,可以同时配置多项,管理员ID在此处获取:进入帝国后台/用户/用户管理/管理用户。数据模型ID在此处获取:系统/数据表与系统模型/管理数据表/管理系统模型/ ID值(如果有多个系统模型请使用启用的那一个)

    请注意数据模型ID不是数据表ID,示例:

    $ExcelFileConfig[2][4]表示用户id为2的管理员在系统模型ID为4的栏目上面具备插件使用权限 ,具备ftp权限的超级管理员需要为其他管理员配置该选项,一般只有超级管理员才有FTP权限 此处需要系统管理员事先设定好

    $ShowExcelNum=10;//预览检测程序默认显示多少条Excel信息,推荐10条,太大反应比较慢,不可以为零;

    1:EXCEL文档导入到ECMS中(以默认数据安装说明):

    要导入数据请先二进制上传excel文件到目录ExcelForEcms\ Excelfile,然后为其建立配置文件(本软件带了一个示例),然后点击导入EXCEL,页面会进入增加信息提交页面,你可以填写一些EXCEL文件里面没有的信息,点击“开始导入EXCEL”后,表单内容提交到服务器,此时插件会从excel里面读取相应信息修改提交的内容,然后再送入帝国自身的信息添加程序,循环此过程完成批量导入,这样就实现了和人工逐条添加一样的效果,这就是ExcelForEcms导入原理,对excel里面没有的内容使用提交表单的内容,由于EXCEL数据保存格式和帝国数据保存格式可能不一样,系统提供了常用的格式转换函数,并在正式导入前可以点击预览查看转换后的数据,可以准确查看数据是否符合要求,如下图所示:

    导入检测程序运行界面如下:

     

    导入数据的配置选项有8项,设置如下:

    配置文件名为任意英文,假设你建立的配置文件名为yunke_config.php,指定给id为1的管理员在id为1的系统模型上面使用则在AppConfig.php里面添加:$ExcelFileConfig[1][1] = “Excelfile/yunke_config.php”;配置文件放入Excelfile/下,excel文件也放入这里。

    $EFE_Workbook = “Excelfile/yunke.xls”; //文件路径及名字,尽管yunke.xls文件和配置文件在同级目录,但此处仍然加前缀Excelfile/,因为此路径是相对于执行程序而言,并非相对于配置文件

    $EFE_Worksheet = “Sheet1”; //工作表名字,请使用英文

    一个Excel文件可能会有很多个表单,请输入您要导入的表单名

    $EFE_Field_Col导入对应配置项,如下:

    $EFE_Field_Col = array(

    ‘title’ => ‘A’,

    ‘ftitle#1’ => ‘B’,

    ‘smalltext’ => ‘C#1’,

    ‘newstext’ => ‘D#kenger’,

    ‘newstime’ => ‘E#ExcelTimeToTime’);

    该配置项为一个PHP数组,键名为增加信息页面表单的元素name值(注:不一定是模型字段值,查看提交页面源代码即可见),键值表示EXCEL文档中的列名,这样的设置表示将该列数据对应到提交表单的对应项,程序以此判断如何导入,建名加“#1”表示该项必填,如果excel中该列为空则记录错误,忽略此条继续导入下一条数据;键值加“#1”表示使用默认函数处理EXCEL中的数据后再导入到ECMS中,默认函数名为:“Excel文件名(不带扩展名)”+“_”+“大写列名”+“_”+“提交表单Name”。假设EXCEL文件名为yunke.xls 如果是导入 比如A列导入title项,则函数名为:yunke_A_title(),(如果表单Name含有[]则去掉[]),此时您需要自定义该名称的函数放入用户自定义函数文件UserFun.php中,您也可以直接使用键值加“#函数名”,表示使用该函数处理数据,该函数可以是帝国connect.php中的函数、php自身函数、插件提供的函数、自定义的函数。有些NAME值是一个数组,如name值为img[],键名则为“img[]”,如果同时又是必填项则键名为“img[]#1”,此时EXCEL单元格需要用到分隔符分割多个值,见下文。

    $EFE_GroupSize

    为了应对大量数据的导入,系统采用分组导入,此处设置数据每组导入多少条数据,为避免服务器超时,可以设置小一些的值,比如10条,此最佳值和服务器性能及内存有关

    $EFE_RowStart

    导入起始行(含该行),数据从EXCEL文件哪一行开始导入,数据有标题的时候特别有用,比如有标题行且标题行只占一行,此处则设置为2,表示从第2行开始导入,如果标题行占用了2行,则此处设置为3

    $EFE_Address_Separate

    如果表单NAME值是一个数组,如name[],表示该项可能有多个值,常见的有附件、图集、投票等,此时EXCEL单元格中也可能有多个值,则每个值使用该处定义的分隔符进行分割,比如“####”等,需要注意的是此字符串不能和数据里可能出现的字符串相同,否则程序不能正确分隔值,该项一般在进行多图上传、设置投票时用到

    $EFE_Address_Prefix

    有些数据可能具有相同的前缀值,比如上传图片时,一个图片地址为/d/file/photo/mingxing/yunketest/a.jpg,在图集上传时一个EXCEL单元格中有多个这样的值,这时看起来会非常乱,且在编辑数据时会很麻烦,使用此配置项可以解决该问题,将相同的前缀定义到这里,则在单元格里面只需要输入后半段的数据即可,如上面的地址在此配置为“/d/file/photo/mingxing/yunketest/”后,单元格里面只需要输入“a.jpg”即可(注意不要漏掉或多加“/”),程序在导入时会自动对数据加上前缀,但需要注意的是要使该项生效还需要在$EFE_Address_Prefix_Col配置项里指定该列启用前缀。一般在多图上传、远程附件时会用到该项配置地址的前缀。

    $EFE_Address_Prefix_Col

    需要在数据前加$EFE_Address_Prefix前缀值的列,如$EFE_Address_Prefix_Col=array(‘B’,’C’,’D’,’E’); 表示BCDE的数据在导入时自动为数据加上设置的前缀值,不设置则不加前缀。

     

    关于附件上传:

    本插件说到的附件上传实际指的是将附件的地址正确提交到系统中,您还需要使用FTP工具将附件批量传送到相应位置,这样页面就可以通过EXCEL提交的附件地址访问到附件,变相实现了附件上传,该过程并不通过ECMS的附件管理相关程序,在附件管理里面查看不到上传的附件。这样的方式实现了附件的任意位置存放,实现本地或远程附件批量传送,只需要在EXCEL文件里面正确反映该附件地址即可,这样做在大多数情况下是非常有用的,需要注意的是EXCEL地址列对应的表单元素type不能为file,当type=file时表示通过浏览器上传附件,以帝国默认测试数据“图片频道”为例,上传图片有源代码如下:

    <input name=msmallpic[] type=text id=’msmallpic1′ size=28 ondblclick=”SpOpenChFile(1,’msmallpic1′);”>

    <br><input type=file name=msmallpfile[] size=15>

    此处键名应该是msmallpic[],而不是msmallpfile[],通俗的讲就是需要您点选“选择文件”页面返回附件地址的那个表单输入项的NAME值。

    关于导入需要注意的问题:

    1:根据帝国CMS要求标题列任何时候都不能为空,否则标题列为空的EXCEL行不被导入并给出提示

    2:Excel文件命令规则以字母开始且只含字母数字下划线,因为此涉及到格式转换函数的默认命令规则

    4:任何情况下值为空则不进行格式转换,格式转换函数可以对原值进行任何处理,如翻译、替换等等

    5:插件提供的时间格式转换函数有可能出现差一秒问题;由于EXCEL时间储存的是1900年1月1日以来的天数,当不足整数天时由于无穷小数问题导致差一秒

    6:对于一个单元格中使用分隔符分割的多个值是连带分隔符整体作为一个字符串传送到格式转换函数中的,而不是分开或以数组传送,在处理函数中需要进行相应处理,

    7:格式转换函数只接受一个参数,且返回和参数同样的数据类型

    8:可以对同一系统模型下的多个栏目一次性批量导入,只需要在EXCEL文档中指定classid值即可。

    9:导入每条数据前程序会调用帝国的验证程序验证是否有权操作,无权则停止运行。

    10:EXCEL数据最好先将公式等转换为具体的值,这样能加快导入速度并减少出错。

    11:非必填项对应的单元格如果为空值,会将$_POST中该项的值替换为空值

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!245356668@qq.com
    2. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!
    3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理,解压密码:我正青年 或者 www.5zqn.com
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 本站不保证所提供下载的资源的准确性、安全性和完整性,源码仅供下载学习之用!
    8. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    我正青年 » 帝国cms EXCEL 批量导入导出插件7.2&7.5 ExcelForEcms解决excel数据导入

    一家专门做精品素材的网站

    加入VIP会员 联系站长