php上传excel,php实现Excel上传及下载

下载扩展PHPExcel

上传excel大概内容例子

~~~

public static function UploadExcel(){

require ('../extend/PHPExcel/Classes/PHPExcel.php');

require ('../extend/PHPExcel/Classes/PHPExcel/IOFactory.php');

$filename = $_FILES['file']['tmp_name'];

$ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));

if ($ext == 'xlsx') {

$objReader = \PHPExcel_IOFactory::createReader('Excel2007');

$objPHPExcel = $objReader->load($filename, 'utf-8');

} elseif ($ext == 'xls') {

$objReader = \PHPExcel_IOFactory::createReader('Excel5');

$objPHPExcel = $objReader->load($filename, 'utf-8');

}

$sheet = $objPHPExcel->getSheet(0);//选择读取页码

$highestRow = $sheet->getHighestRow(); // 取得总行数

for ($row = 2; $row <= $highestRow+1; $row++) {

$create_time = (string)$objPHPExcel->getActiveSheet()->getCell('A'.$row)->getValue();

$mpsid = (string)$objPHPExcel->getActiveSheet()->getCell('B'. $row)->getValue();

}

//插入数据库

}

~~~

下载excel大概例子

如果是前后端分离,前端用blob数据类型获取并解析

~~~

public static function createExcel(){

require ('../extend/PHPExcel/Classes/PHPExcel.php');

$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L');

$objPHPExcel = new \PHPExcel();

$ids = request()->param('ids');

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1', '时间')

->setCellValue('B1', '单号')

->setCellValue('C1', '唛头')

->setCellValue('D1', '购买货名')

->setCellValue('E1', '购买数量')

->setCellValue('F1', '购买重量')

->setCellValue('G1', '购买单价')

->setCellValue('H1', '购买总金额')

->setCellValue('I1', '供应商名称')

->setCellValue('J1', '备注')

->setCellValue('K1', '款项')

->setCellValue('L1', '付款时间');

for ($i = 0; $i < count($cellName); $i++) {

$objPHPExcel->getActiveSheet()->getColumnDimension($cellName[$i])->setWidth(20);

}

for($i=0;$i

$k = $i+2;

$result = Db::table('sz_expenditure_agent SZ')

->field('SZ.sz_expenditure_create_time, SZ.sz_expenditure_mpsid,

SZ.sz_expenditure_buy_name, SZ.sz_expenditure_shipping_mark, SZ.sz_expenditure_buy_number,

SZ.sz_expenditure_weight, SZ.sz_expenditure_buy_price, SZ.sz_expenditure_buy_amount,

C.name, SZ.sz_expenditure_remarks, SZ.sz_expenditure_payment, SZ.sz_expenditure_time')

->leftJoin('customer C', 'SZ.customer_id = C.customer_id')

->where("SZ.sz_expenditure_agent_id=$ids[$i]")

->find();

$objPHPExcel->getActiveSheet()

->setCellValue('A' . $k, date('Y-m-d',$result['sz_expenditure_create_time']))

->setCellValue('B' . $k, $result['sz_expenditure_mpsid'])

->setCellValue('C' . $k, $result['sz_expenditure_shipping_mark'])

->setCellValue('D' . $k, $result['sz_expenditure_buy_name'])

->setCellValue('E' . $k, $result['sz_expenditure_buy_number'])

->setCellValue('F' . $k, $result['sz_expenditure_weight'])

->setCellValue('G' . $k, $result['sz_expenditure_buy_price'])

->setCellValue('H' . $k, $result['sz_expenditure_buy_amount'])

->setCellValue('I' . $k, $result['name'])

->setCellValue('J' . $k, $result['sz_expenditure_remarks'])

->setCellValue('K' . $k, $result['sz_expenditure_payment']? '已付':'未付')

->setCellValue('L' . $k, date('Y-m-d',$result['sz_expenditure_time']));

}

// 设置垂直居中

$objPHPExcel->getActiveSheet()->getStyle("A1:L$k")->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

// 设置水平居中

$objPHPExcel->getActiveSheet()->getStyle("A1:L$k")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

ob_end_clean();// 清理(擦除)输出缓冲区并关闭输出缓冲区,解决导出excel无法打开及数据乱码问题。

header('Content-Type: applicsation/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

//下面两句属于后期加入,未测试

header('Content-Disposition: attachment;filename="01simple.xls"');

header('Cache-Control: max-age=0');

$PHPWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007");

$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件

}

~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值