php实现csv格式的表格导出,快捷方便
示例代码如下:
//增加导出为csv格式文件 @by lhw 2019-04-16
function exportCsv($list, $params = array())
{
set_time_limit(0);
$filename = iconv('UTF-8', 'GBK//IGNORE', $params['title'] . '-' . date('YmdHis').'.csv');
header("Content-type:text/csv;");
header("Content-Disposition:attachment;filename=" . $filename);
header('Cache-Control: max-age=0');
header('Expires:0');
header('Pragma:public');
$title = '';
foreach ($params['columns'] as $key => $column )
{
$title .= ($title ? ',' : '').'"'.$column['title'].'"';
}
echo iconv('UTF-8', 'GBK//IGNORE', $title."\r\n");
$len = count($params['columns']);
foreach ($list as $row )
{
$str = '';
$i = 0;
while ($i < $len)
{
$str .= ($str ? ',' : '').'"'.(isset($row[$params['columns'][$i]['field']]) ? $row[$params['columns'][$i]['field']] : '').'"';
++$i;
}
echo iconv('UTF-8', 'GBK//IGNORE', $str."\r\n");
}
exit();
}
然后调用上面的导出方法:
调用导出功能示例如下:
$adlist=array(
array(
'li'=>1,
'shop_name'=>'芙蓉兴盛',
'material_name'=>'面粉'
),
array(
'li'=>2,
'shop_name'=>'家乐汇',
'material_name'=>'玉米'
)
);
$columns = array(
array('title' => '序号', 'field' => 'li', 'width' => 12),
array('title' => '门店名称', 'field' => 'shop_name', 'width' => 12),
array('title' => '原料名称', 'field' => 'material_name', 'width' => 12)
);
exportCsv($adlist, array('title' => '原料明细表', 'columns' => $columns));