Excel导出生成多个sheet php
//批量导出配送清单
public function get_all_downexcel() {
require_once ROOT_PATH . '/ThinkPHP/Library/Vendor/phpexcel/PHPExcel.php';
$gpc = I('request.');
$list_ids = explode(',',$gpc['ids_arr']);
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getProperties()
->setCreator("Hohan")
->setLastModifiedBy("Hohan")
->setTitle("Office 2003 XLSX Test Document")
->setSubject("Office 2003 XLSX Test Document")
->setDescription("Test document for Office 2003 XLSX, generated using PHP classes.")
->setKeywords("office 2003 openxml php")
->setCategory("Test result file");
foreach($list_ids as $key => $list_id){
$condition = " and list_id={$list_id} ";
$list = M()->query('SELECT * FROM ' . C('DB_PREFIX') . "lionfish_comshop_deliverylist_goods
WHERE 1 " . $condition . ' order by id desc ');
$exportlist = array();
$i = 1;
foreach ($list as $val) {
$tmp_exval = array();
$tmp_exval['num_no'] = $i;
$tmp_exval['name'] = $val['goods_name'];
$tmp_exval['quantity'] = $val['goods_count'];
$tmp_exval['sku_str'] = $val['sku_str'];
$info = M('lionfish_comshop_order_goods')->field('price')->where(array(
'rela_goodsoption_valueid' => $val['rela_goodsoption_valueid'],
'goods_id' => $val['goods_id']
))->order('order_goods_id desc')->find();
$tmp_exval['price'] = $info['price'];
$tmp_exval['total_price'] = round($info['price'] * $val['goods_count'], 2);
//goods_id rela_goodsoption_valueid
$exportlist[] = $tmp_exval;
$i++;
}
//第一个sheet
$objPHPExcel->createSheet();
$objActSheet = $objPHPExcel->setActiveSheetIndex($key);
//标题
$list_info = M('lionfish_comshop_deliverylist')->where(array(
'id' => $list_id
))->find();
$A1 = $list_info['head_name']; //团老大
$A2 = '团长:' . $list_info['head_name'] . ' 配送员:' . $list_info['clerk_name']. ' 联系电话:' . $list_info['head_mobile'];
$A3 = ' 提货地址:' . $list_info['head_address'];
$A4 = '配送单:' . $list_info['list_sn'] . ' 时间:' . date('Y-m-d H:i:s', $list_info['create_time']);
$A5 = '配送路线:' . $list_info['line_name'];
$objPHPExcel->getActiveSheet()->setCellValue('A1',$A1);
$objPHPExcel->getActiveSheet()->setCellValue('A2',$A2);
$objPHPExcel->getActiveSheet()->setCellValue('A3',$A3);
$objPHPExcel->getActiveSheet()->setCellValue('A4',$A4);
$objPHPExcel->getActiveSheet()->setCellValue('A5',$A5);
$objPHPExcel->getActiveSheet()->setCellValue('A6','序号');
$objPHPExcel->getActiveSheet()->setCellValue('B6','商品名称');
$objPHPExcel->getActiveSheet()->setCellValue('C6','数量');
$objPHPExcel->getActiveSheet()->setCellValue('D6','规格');
if(!empty($list_info['delivery_qrcode']))
{
//图片生成
$objDrawing = new \PHPExcel_Worksheet_Drawing();
$img_src='./Uploads/image/'.$list_info['delivery_qrcode'];
$objDrawing->setPath($img_src);
// 设置宽度高度
$objDrawing->setHeight(60);//照片高度
$objDrawing->setWidth(60); //照片宽度
/*设置图片要插入的单元格*/
$objDrawing->setCoordinates('H1');
// 图片偏移距离
$objDrawing->setOffsetX(12);
$objDrawing->setOffsetY(12);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet());
}
$i = 1;
foreach($exportlist as $key2 => $val){
//数据
$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->setCellValue('A'.($i+6),$i);
$objPHPExcel->getActiveSheet()->setCellValue('B'.($i+6),$val['name']);
$objPHPExcel->getActiveSheet()->setCellValue('C'.($i+6),$val['quantity']);
$objPHPExcel->getActiveSheet()->setCellValue('D'.($i+6),$val['sku_str']);
$i ++;
}
//sheet名称
$objPHPExcel->getActiveSheet()->setTitle("清单数据".$list_id);
}
$obwrite = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Content-Type:application/force-download');
header('Content-Type:application/vnd.ms-execl');
header('Content-Type:application/octet-stream');
header('Content-Type:application/download');
header("Content-Disposition:attachment;filename=批量导出清单数据.xls");
header('Content-Transfer-Encoding:binary');
$obwrite->save('php://output');
die;
}
你所浪费的今天是那些死去的人所奢望的明天,你所厌恶的现在是未来的你所回不去的曾经。

浙公网安备 33010602011771号