VtigerCRM5.4.0数据导出导入csv乱码修复
2013-01-31 15:08
190 查看
导入数据文件CSV中文乱码修正:
在Smarty/templates/ImportStep1.tpl中的第99行插入<optionvalue=”GBK”>GBK</option>
导出数据文件CSV中文乱码修正:
修改include/utils/export.php中的第208,232和240行
在Smarty/templates/ImportStep1.tpl中的第99行插入<optionvalue=”GBK”>GBK</option>
<selectname="format"class="small">
<!--valuemustbeaknownformatformb_convert_encoding()-->
<optionvalue="GBK">GBK</option>//<<插入一行
<optionvalue="ISO-8859-1">ISO-8859-1</option>
<optionvalue="UTF-8">UTF-8</option>
</select>
再修改modules/Import/resources/Utils.php中的第21行
static$supportedFileEncoding=array('UTF-8'=>'UTF-8','ISO-8859-1'=>'ISO-8859-1');
修改为:static$supportedFileEncoding=array('UTF-8'=>'UTF-8','GBK'=>'GBK','ISO-8859-1'=>'ISO-8859-1');
添加了GBK的数组,smarty再引用这个的数组的值。
原理说明:
导入时的程序执行的是先用了\Smarty\templates\modules\Import\ImportBasic.tpl然后再引入不同的tpl文件
<tr><tdclass="leftFormBorder1"width="60%"valign="top">
{includefile='modules/Import/Import_Step1.tpl'}//第1步</td>
<tdclass="leftFormBorder1"width="40%"valign="top">{includefile='modules/Import/Import_Step2.tpl'}//第2步</td></tr>
<tr><tdclass="leftFormBorder1"colspan="2"valign="top">{includefile='modules/Import/Import_Step3.tpl'}//第3步</td></tr>
<tr><tdalign="right"colspan="2">{includefile='modules/Import/Import_Basic_Buttons.tpl'}</td></tr>
再调用了modules/Import/Import_Step2.tpl第34行代码如下:
<selectname="file_encoding"id="file_encoding"class="small">{foreachkey=_FILE_ENCODINGitem=_FILE_ENCODING_LABELfrom=$SUPPORTED_FILE_ENCODING}<optionvalue="{$_FILE_ENCODING}">{$_FILE_ENCODING_LABEL|@getTranslatedString:$MODULE}</option><!--这里是数据类型-->{/foreach}</select>
如果需要将一个Excel表格导入,要注意以下几个步骤:
另存为CSV文件后,必须的格式要如下(表列值必须是双引号),然后中间有逗号分隔。
"姓名","性别","电话","手机"
"张三","男","84577487","13878902345"
"李四","女","25878456","13978581278"
注意:如果用导出的客户资料csv文件为模版,用Excel来编辑客户资料用来导入,则必须要经过处理,
因为用Excel保存完csv文件之后,用UE打开后每列值是没有双引号的,如下:
姓名,性别,电话,手机
张三,男,84577487,13878902345
李四,女,25878456,13978581278
处理方法:
1、用UE打开,替换,为","
2、上传到linux系统,用vim编辑,在行首和行尾分别加入"
:%s/^/“/g(在每行行首添加")
:%s/$/"/g(在每行行尾添加")
然后就可以成功将中文导入了。
导出数据文件CSV中文乱码修正:
修改include/utils/export.php中的第208,232和240行
echoiconv("UTF-8","GBK",$header);//原来:echo$header;
echoiconv("UTF-8","gbk",$line);//原来:echo$line;}$log->debug("Exitingexportmethod...");returntrue;}
header("Content-Disposition:attachment;filename={$_REQUEST['module']}.csv");header("Content-Type:text/csv;charset=gbk");//原来:header("Content-Type:text/csv;charset=UTF-8");header("Expires:Mon,26Jul199705:00:00GMT");header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT");header("Cache-Control:post-check=0,pre-check=0",false);
相关文章推荐
- VtigerCRM5.4.0数据导出导入csv乱码修复
- php数据导入导出之excel(csv文件)
- pycharm导入导出csv文件乱码问题
- mysql导入导出数据中文乱码解决方法小结
- Mysql 导入导出csv 中文乱码
- sl3中的DataGrid中的数据导出到Excel中 使用csv格式 解决中文是乱码的问题
- OpenRefine导入CSV文件,数据清理后导出JSON格式
- 用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件
- 完美解决php 导出excle的.csv格式的数据时乱码问题
- php数据导入导出之excel(csv文件)
- mongodb11天之屠龙宝刀(十) 备份 还原 导出 导入::CSV,JSON,BOSN,解决中文乱码
- mysql 导出导入数据 -csv
- Mysql 导入导出csv 中文乱码问题的解决方法
- 用NPOI实现导入导出csv、xls、xlsx数据功能
- php数据导入导出之excel(csv文件)
- mysql导入导出数据中文乱码解决方法小结
- 总结02-26用C#从sql数据库导出csv格式的数据,从csv格式读取数据导入到sql表中
- mysql导入csv中文数据乱码问题分析与解决
- mysql数据导出导入不出现乱码的几个前提条件
- PHP批量导入和导出数据为CSV文件 (自适应版)