php导出xls文件,2020-06-25 如何使用PHP导出Xls文件

本文介绍了如何使用PHP在网站上将数据导出为Excel文件,包括两种方法:一种是简单的HTTP头设置,另一种是使用PHPExcel库。使用PHPExcel不仅可以创建Excel文件,还能设置样式、大小,确保文件在手机上也能正常打开。示例代码详细展示了数据写入、单元格格式设置等操作,适合需要处理复杂Excel输出的开发者。
摘要由CSDN通过智能技术生成

如何用PHP在网站上将数据导出为Excel文件呢?

(1)普通方法

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:filename=" . $filename . ".xls");

$strexport = "分类名\t商品名\t数量\r";

foreach (

math?formula=list%20asrow) {

math?formula=strexport%20.%3Drow['分类名'] . "\t";

math?formula=strexport%20.%3Drow['商品名'] . "\t";

math?formula=strexport%20.%3Drow['数量'] . "\r";

}

//$strexport = iconv("utf-8", "gb2312//IGNORE", $strexport);

exit($strexport);

这样做可以导出一个xls文件,可以在电脑上直接使用,如果想在手机上查看,还需要在本地用Office或WPS另存一下。

(2)使用PHPExcel

/** PHPExcel */

require IA_ROOT . '/Classes/PHPExcel.php';

/** PHPExcel_Writer_Excel2007 */

require IA_ROOT . '/Classes/PHPExcel/Writer/Excel2007.php';

// Create new PHPExcel object

echo date('H:i:s') . " Create new PHPExcel object\n";

$objPHPExcel = new PHPExcel();

// Set properties

echo date('H:i:s') . " Set properties\n";

$objPHPExcel->getProperties()->setCreator("Loveuzi");

$objPHPExcel->getProperties()->setLastModifiedBy("Loveuzi");

$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");

$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");

$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");

// Add some data

//echo date('H:i:s') . " Add some data\n";

$objPHPExcel->setActiveSheetIndex(0);

$objPHPExcel->getActiveSheet()->SetCellValue('A1', '分类名');

$objPHPExcel->getActiveSheet()->SetCellValue('B1', '商品名!');

$objPHPExcel->getActiveSheet()->SetCellValue('C1', '数量');

$index = 2;

foreach ($list as $row) {

$objPHPExcel->getActiveSheet()->SetCellValue('A' . $index, $row['分类名']);

$objPHPExcel->getActiveSheet()->SetCellValue('B' . $index, $row['商品名']);

$objPHPExcel->getActiveSheet()->SetCellValue('C' . $index, $row['数量']);

$index++;

}

// Rename sheet

echo date('H:i:s') . " Rename sheet\n";

$objPHPExcel->getActiveSheet()->setTitle($filename);

// Save Excel 2007 file

echo date('H:i:s') . " Write to Excel2007 format\n";

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

$objWriter->save(str_replace('.php', '.xlsx', __FILE__));

// Echo done

echo date('H:i:s') . " Done writing file.\r\n";

//清除缓冲区,避免乱码

ob_end_clean();

header('pragma:public');

header("Content-Disposition:attachment;filename=$filename");

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

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

$objWriter->save('php://output');

这样通过PHPExcel导出的Excel表可以直接被手机打开,且样式、大小都可以设置。

以下是样式设置的一些示例方法:

//设置宽度

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetColumnDimension('A')-%3EsetWidth(200)%3B%20%2F%2F%E8%AE%BE%E7%BD%AE%E5%8D%95%E5%85%83%E6%A0%BC%E5%AE%BD%E5%BA%A6objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); //内容自适应

//设置align(需要引入PHPExcel_Style_Alignment)

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetStyle('A18')-%3EgetAlignment()-%3EsetHorizontal(PHPExcel_Style_Alignment%3A%3AHORIZONTAL_JUSTIFY)%3B%2F%2F%E6%B0%B4%E5%B9%B3%E6%96%B9%E5%90%91%E4%B8%8A%E4%B8%A4%E7%AB%AF%E5%AF%B9%E9%BD%90objPHPExcel->getActiveSheet()->getStyle( 'A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直方向上中间居中

//合并拆分单元格

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EmergeCells('A28%3AB28')%3B%20%2F%2F%20A28%3AB28%E5%90%88%E5%B9%B6objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // A28:B28再拆分

//字体大小、粗体、字体、下划线、字体颜色(需引入PHPExcel_Style_Font、PHPExcel_Style_Color)

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetStyle('A1')-%3EgetFont()-%3EsetSize(20)%3BobjPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetStyle('B1')-%3EgetFont()-%3EsetName('Candara')%3BobjPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetStyle('B1')-%3EgetFont()-%3EgetColor()-%3EsetARGB(PHPExcel_Style_Color%3A%3ACOLOR_WHITE)%3B%20%2F%2F%E9%BB%98%E8%AE%A4%E5%AD%97%E4%BD%93%E3%80%81%E5%A4%A7%E5%B0%8FobjPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');

math?formula=objPHPExcel-%3EgetDefaultStyle()-%3EgetFont()-%3EsetSize(20)%3B%20%2F%2F%E8%83%8C%E6%99%AF%E5%A1%AB%E5%85%85objPHPExcel->getActiveSheet()->getStyle( 'A3:E3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EgetStyle(%20'A4%3AE4')-%3EgetFill()-%3EgetStartColor()-%3EsetARGB('FFC125')%3B%20%2F%2F%20%E5%8D%95%E5%85%83%E6%A0%BC%E5%AF%86%E7%A0%81%E4%BF%9D%E6%8A%A4%E4%B8%8D%E8%AE%A9%E4%BF%AE%E6%94%B9objPHPExcel->getActiveSheet()->getProtection()->setSheet( true); // 为了使任何表保护,需设置为真

math?formula=objPHPExcel-%3EgetActiveSheet()-%3EprotectCells(%20'A3%3AE13'%2C%20'PHPExcel'%20)%3B%20%2F%2F%20%E5%B0%86A3%E5%88%B0E13%E4%BF%9D%E6%8A%A4%20%E5%8A%A0%E5%AF%86%E5%AF%86%E7%A0%81%E6%98%AF%20PHPExcelobjPHPExcel->getActiveSheet()->getStyle( 'B1')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED); //去掉保护

//给单元格内容设置url超链接

math?formula=objActSheet-%3EgetCell('E26')-%3EgetHyperlink()-%3EsetUrl(%20'http%3A%2F%2Fwww.phpexcel.net')%3B%20%2F%2F%E8%B6%85%E9%93%BE%E6%8E%A5url%E5%9C%B0%E5%9D%80objActSheet->getCell('E26')->getHyperlink()->setTooltip( 'Navigate to website'); //鼠标移上去连接提示信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值