如何通过提交参数解决PHPexcel类库效率问题


PHPExcel类库效率低下是很多PHP开发工程师比较头疼的问题,今天这篇文章是通过全面form提交过来的参数,实现数据库表中数据导出,比PHPExcel类库高效N倍;

注意“表头”第一个字段不要用英文,excel表头字段不要有换行。

header("Content-type:text/html;charset=uft-8");

require_once ’connect.php’;

export_csv();

function export_csv() {

$filename = ’fh_’.date(’YmdHis’).".csv";//文件名

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header(’Cache-Control:must-revalidate,post-check=0,pre-check=0’);

header(’Expires:0’);

header(’Pragma:public’);

echo array_to_string(get_export_data());

}

function i($strInput) {

return iconv(’utf-8’,’gb2312’,$strInput);//页面编码为utf-8时使用,否则导出的中文为乱码

}

function array_to_string($result) {

if(empty($result)) {

return i("没有符合您要求的数据!");

}

//表头

$data = iconv(

’utf-8’,

’gb2312’,

"平台,店铺,仓库,订单号,交易号,发货日期,下单时间,支付时间,快递公司,物流单号,昵称,收件人,**,款号,颜色名称,尺码名称,SKU,产品名称,数量,均摊价")."\r\n";

// 总记录条数

$size_result = sizeof($result);

//,商家留言 .i($result[$i][’say’])

for($i = 0 ; $i < $size_result ; $i++) {

$data .=

i($result[$i][’pt’]).’,’.

i($result[$i][’dp’]).’,’.

i($result[$i][’ck’]).’,’.

i($result[$i][’order_sn’]).’,’.

i($result[$i][’deal_code’]).’,’.

i($result[$i][’fhrq’]).’,’.

i($result[$i][’xdrq’]).’,’.

i($result[$i][’zfrq’]).’,’.

i($result[$i][’kd’]).’,’.

i($result[$i][’wldh’]).’,’.

i($result[$i][’nick’]).’,’.

i($result[$i][’sjr’]).’,’.

i($result[$i][’phone’]).’,’.

i($result[$i][’goods_sn’]).’,’.

i($result[$i][’color_name’]).’,’.

i($result[$i][’size_name’]).’,’.

i($result[$i][’sku’]).’,’.

i($result[$i][’goods_name’]).’,’.

i($result[$i][’num’]).’,’.

i($result[$i][’pay’])."\n";

}

return $data;

}

function get_export_data() {

$sql = "select

pt,dp,ck,order_sn,deal_code,fhrq,xdrq,

zfrq,kd,wldh,nick,sjr,phone,goods_sn,

color_name,size_name,sku,goods_name,

num,pay,say

from

oiwas

limit 10000";

$result = mysql_query($sql);

$res = array();

$i = 0;

while(!!$row = mysql_fetch_array($result)) {

$res[$i][’pt’] = $row[’pt’];

$res[$i][’dp’] = $row[’dp’];

$res[$i][’ck’] = $row[’ck’];

$res[$i][’order_sn’] = "’".$row[’order_sn’];

//$res[$i][’deal_code’] = $row[’deal_code’];

$res[$i][’deal_code’] = "’".str_replace(’,’, ’-’, $row[’deal_code’]);

$res[$i][’fhrq’] = $row[’fhrq’];

$res[$i][’xdrq’] = $row[’xdrq’];

$res[$i][’zfrq’] = $row[’zfrq’];

$res[$i][’kd’] = $row[’kd’];

$res[$i][’wldh’] = "’".$row[’wldh’];

$res[$i][’nick’] = $row[’nick’];

$res[$i][’sjr’] = $row[’sjr’];

$res[$i][’phone’] = "’".$row[’phone’];

$res[$i][’goods_sn’] = $row[’goods_sn’];

$res[$i][’color_name’] = $row[’color_name’];

$res[$i][’size_name’] = $row[’size_name’];

$res[$i][’sku’] = $row[’sku’];

$res[$i][’goods_name’] = $row[’goods_name’];

$res[$i][’num’] = $row[’num’];

$res[$i][’pay’] = $row[’pay’];

$i++;

}

return $res;

}

想了解更多PHP开发技巧,可以来麦子学院php开发教程来掌握更多方式方法。

时间: 2024-11-08 08:52:49

如何通过提交参数解决PHPexcel类库效率问题的相关文章

Spring MVC url提交参数和获取参数

普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      * Spring MVC URL提交参数      * @param name      * @return      */     @RequestMapping(/param)     public ModelAndView getInfo(@Request

菜鸟调错(九)——POST方法提交参数丢失问题

在解决一个bug的时候,发现post提交上来的参数,有部分丢失了.经过一番查证,有资料说,Tomcat的server.xml中有一个maxPostSize属性,默认是2M.于是将其值显式置为0(不对post提交的大小做限制). <Connector maxPostSize="0" URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol=&quo

post提交参数有Date类型,总是返回400格式错误

post提交参数有addtime时,总是返回400错误. 将参数改为addTime时,就能正常提交了. 尝试了各种方法,纠结了好久还是没搞定,之前猜测试addtime是关键字导致的不能提交,后来测试,addtime是可以提交的. 经过不断尝试终于找到了原因:spring mvc 在接收日期类型参数时,如不做特殊处理 会出现400语法格式错误 解决办法: 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日期转换处理的问题了,说问题也不大,但很多人开发中经常会遇到这个问题

输入值/表单提交参数过滤有效防止sql注入的方法

输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return string * @author zrp <[email protected]> */ private function filter_keyword( $string ) { $keyword = select|insert|update|delete|\|\/\*|\*|\.\.\/|\.\/|union

IMPDP导入报错ORA-27040: 文件创建错误, 无法创建文件,remap_datafile参数解决

该参数可用于给泵出文件中的源数据库文件重新指定一个新的路径和名称,主要用在平台间的数据迁移. 用法: remap_datafile=source_file:target_file 在windows平台上的使用: impdp dbuser/dbuser full=y dumpfile=full.dmp logfile=full.log remap_datafile="F:\DB\ORADB\ORADATA\ORADB\MYDB1.ORA":"F:\app\guester\ora

0519.使用CocoaPods管理第三方类库[效率]

项目目录 添加第三方框架后的项目目录如下图 为什么要用Cocoapods? iOS开发中常用的第三方库,比如: 1.FMDB:在使用SQLite是只需要加入libsqlite3.dylib依赖以及sqlite3.h头文件即可.但是原生的SQLiteAPI使用相当不友好,而FMDB是对一系列的SQLiteAPI进行封装的库. 2.AFNetworking:网络层框架,构建于NSURLConnection.NSOperation和其他Foundation技术之上. 3.JSONKit:仅次于系统提供

Form 表单提交参数

今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name = 后台参数名 的属性就ok了. 后台本来是只有模型参数的,但是后来增加了一个. 只要在前台定义 name="Users" 的select . 点击提交的时候,select 的多选值会自动传入后台参数Users[]中. 已经是第二次忘记这个神奇的作用,特此记下.

利用Splatting提交参数(Hash,哈希)

$infos = @{} $infos.Path = 'c:\Windows' $infos.Recurse = $true $infos.Filter = '*.log' $infos.ErrorAction = 'SilentlyContinue' $infos.Remove('Recurse') dir @infos dir c:\windows -rexurse -filter ‘*.log’ -erroraction silentlycontinue 利用Splatting提交参数(H

解决 PHPExcel 长数字串显示为科学计数

解决 PHPExcel 长数字串显示为科学计数 https://github.com/PHPOffice/PHPExcel/ 在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法,例如身份证号码,解决方法是把表格设置文本格式或在输入前加一个单引号. 使用PHPExcel来生成excel,也会遇到同样的问题,解决方法有三种: 1.设置单元格为文本 $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetInd