当前位置:Gxlcms > PHP教程 > thinkph到底怎样输出excel,小弟快急疯了

thinkph到底怎样输出excel,小弟快急疯了

时间:2021-07-01 10:21:17 帮助过:6人阅读

thinkph到底怎样输出excel,小弟快急疯了。前台是循环输出表格,name = "list" id = "vo".点击按钮,怎样让它以表格的形式输出到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的宽度,有的数据太大了

谢谢大家帮忙

人气教程排行