thinkph到底怎样输出excel,小弟快急疯了
回复讨论(解决方案)
thinkphp导出excel,怎样把表格里的数据传递到后台?现在只差这一步了
用第3方的类试试
http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2009/0114/309.html
什么叫把表格的数据传递到后台~~~~~
你表格根据什么条件输出的,导出excel根据同样的条件查询数据不就行了?
这是你的第三帖了吧....
我还是这个方法
如果你用不了 有什么问题再进一步探讨 我是可以用的
/** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@param $filename 下载的文件名 *@examlpe $stu = M ('User'); $arr = $stu -> select(); exportexcel($arr,array('id','账户','密码','昵称'),'文件名!'); */ function exportexcel($data=array(),$title=array(),$filename='report'){ header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=".$filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty($title)){ foreach ($title as $k => $v) { $title[$k]=iconv("UTF-8", "GB2312",$v); } $title= implode("\t", $title); echo "$title\n"; } if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); } $data[$key]=implode("\t", $data[$key]); } echo implode("\n",$data); } }
什么叫把表格的数据传递到后台~~~~~
你表格根据什么条件输出的,导出excel根据同样的条件查询数据不就行了?
这种思路我也想了,不过表格里的数据不是一个数组,而且还有序列($key }这个也是后台没有的
这是你的第三帖了吧....
我还是这个方法
如果你用不了 有什么问题再进一步探讨 我是可以用的
/** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@param $filename 下载的文件名 *@examlpe $stu = M ('User'); $arr = $stu -> select(); exportexcel($arr,array('id','账户','密码','昵称'),'文件名!'); */ function exportexcel($data=array(),$title=array(),$filename='report'){ header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=".$filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty($title)){ foreach ($title as $k => $v) { $title[$k]=iconv("UTF-8", "GB2312",$v); } $title= implode("\t", $title); echo "$title\n"; } if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); } $data[$key]=implode("\t", $data[$key]); } echo implode("\n",$data); } }
我就是用的这个方法,$date这个数据就是表格里的数据,怎样把这个数组从前台传递到后台,实在不会
这是你的第三帖了吧....
我还是这个方法
如果你用不了 有什么问题再进一步探讨 我是可以用的
/** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@param $filename 下载的文件名 *@examlpe $stu = M ('User'); $arr = $stu -> select(); exportexcel($arr,array('id','账户','密码','昵称'),'文件名!'); */ function exportexcel($data=array(),$title=array(),$filename='report'){ header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=".$filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty($title)){ foreach ($title as $k => $v) { $title[$k]=iconv("UTF-8", "GB2312",$v); } $title= implode("\t", $title); echo "$title\n"; } if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); } $data[$key]=implode("\t", $data[$key]); } echo implode("\n",$data); } }
这个方法能导出excel,没有问题,问题是我不会把表格里的数据传递到后台$data
上截图吧
"把表格里的数据传递到后台" 大概是个什么意思
u014244418 用户都急死了,答案在眼前,楼主用不来
u014244418 用户都急死了,答案在眼前,楼主用不来
刚才吃饭去了,马上上图
表格里的数据输出到excel,其中exportexcel方法就是四楼的方法。现在要把这个表里的数据传递到这个方法里面,我尝试着把这四个数据传过去,用input的形式只能传第一个值。
上截图吧
"把表格里的数据传递到后台" 大概是个什么意思
我就是用的你贴的代码,title和filename没问题。问题是data,把表格里的数据传递到后台你写的那个方法里,然后再把这些数据写成$data。问题是前台传不过去这些数据
这是你的第三帖了吧....
我还是这个方法
如果你用不了 有什么问题再进一步探讨 我是可以用的
/** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@param $filename 下载的文件名 *@examlpe $stu = M ('User'); $arr = $stu -> select(); exportexcel($arr,array('id','账户','密码','昵称'),'文件名!'); */ function exportexcel($data=array(),$title=array(),$filename='report'){ header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=".$filename.".xls"); header("Pragma: no-cache"); header("Expires: 0"); //导出xls 开始 if (!empty($title)){ foreach ($title as $k => $v) { $title[$k]=iconv("UTF-8", "GB2312",$v); } $title= implode("\t", $title); echo "$title\n"; } if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); } $data[$key]=implode("\t", $data[$key]); } echo implode("\n",$data); } }收藏,谢谢。
问题解决了,在后台又查询了一遍,真麻烦。但是不知道怎样调节excel的宽度,有的数据太大了
谢谢大家帮忙
上一篇: Quartz2D
下一篇: 你见过哪些令你瞠目结舌的爬虫技巧?