当前位置: 首页 > 常见问题 > Excel表格

php查询后并导出excel,php导出excel表格

  • Excel表格
  • 2023-08-12

php查询后并导出excel?在php编程中,如果要将查询结果导出到Excel,只需对页面的Context-Type做修改即可。例如:代码示例:header("Content-Type: application/vnd.ms-excel")如果希望能够提供那个打开/保存的对话框,Content-Disposition参数,那么,php查询后并导出excel?一起来了解一下吧。

php删除excel空白行

php怎么导出文件?

在php编程中,如果要将查询结果导出到Excel,只需对页面的Context-Type做修改即可。

例如:

代码示例:

header("Content-Type: application/vnd.ms-excel")如果希望能够提供那个打开/保存的对话框,Content-Disposition参数,Content-Disposition参数本来是为了在客户端另存文件时提供一个建议的文件名,但是考虑到安全的原因,就从规范中去掉了这个参数。

Content-Disposition参数:

attachment --- 作为附件

inline --- 在线打开

具体使用:

代码示例:

header("Content-Disposition: inline; filename=文件名.mp3");

Header("Content-Disposition:attachment;filename=test.xls");其实IE是根据Content-Disposition中filename这个段中文件名的后缀来识别这个文件类型的,如果有很多种文件类型的时候,可以将Content-Type设置为二进制模式的:

Header("Content-type: application/octet-stream");例子:

代码示例:

$filename = './download/d.rar ';

$filesize = filesize($filename);

header( "Content-Type: application/force-download ");

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

header( "Content-Length: ".$filesize);

$data = file_get_contents($filename);

echo $data;

?>以上代码实现打开页面后立即出现保存窗口,的文件为$filename。

php导出Excel

要导出大量数据的Excel,可以使用以下步骤:侍前

安装PHPExcel库

PHPExcel是一个流行的用于生成Excel文档的老型清PHP库,可以通过Composer进行安装。在终端中执行以下命令:

bash

composer require phpoffice/phpexcel

编写PHP脚本

编写PHP脚本来生成Excel文档。以下是示例代码租仔:

php

require_once 'vendor/autoload.php'; // 导入PHPExcel库

// 创建PHPExcel对象

$objPHPExcel = new PHPExcel();

// 设置文档属性

$objPHPExcel->getProperties()

->setCreator('Your Name')

->setTitle('Title of the document')

->setSubject('Subject of the document')

->setDescription('Description of the document');

// 添加数据到Excel表格

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1', 'Column 1')

->setCellValue('B1', 'Column 2')

->setCellValue('C1', 'Column 3');

// 循环导入数据到Excel表格

for ($i = 2; $i <= 10000; $i++) {

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A' . $i, 'Value ' . $i)

->setCellValue('B' . $i, 'Value ' . ($i * 2))

->setCellValue('C' . $i, 'Value ' . ($i * 3));

}

// 输出Excel文件到浏览器

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="data.xlsx"');

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

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

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

exit;

运行脚本

将脚本保存为php文件,并在终端中运行:

php your-script.php

这将生成一个名为“data.xlsx”的Excel文件,并将其到您的浏览器中。

php显示excel表格

PHP如何实现表格Excel的导出

首先PHPExcel包并将包引入到项目中;然后实例化PHPExcel对象;接着设置表格的列,以及列队属性;再将数据添加到表格中;最后将表格文件数据输出即可。

PHPExcel

是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格

ThinkPHP示例

public function exportExcel()

{

//先获取数据

$where['comid'] = session('uid');

$res = M('cheliang')->where($where)->select();

// var_dump($res);die;

//下面就是导出的步骤了

vendor('PHPExcel0.Classes.PHPExcel');

$objPHPExcel = new PHPExcel();

$objPHPExcel->createSheet(0);

$objPHPExcel->setActiveSheetIndex(0);

//只需要把你想要的字段改成你自己需要的就可以了!!!

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1', '考试人')

->setCellValue('B1', '车牌')

->setCellValue('C1', '考试时间')

->setCellValue('D1', '考试分数')

->setCellValue('E1', '签名');

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//设置单元格宽度

$objPHPExcel->getActiveSheet()->getColumnDimension('C'巧首)->setWidth(50);//设置单元格宽度

$objPHPExcel->getActiveSheet()->getColumnDimension('D'孝早数)->setWidth(20);//设置单元格宽度

$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);//设置单元格宽度

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); //第一行是否加粗

$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); //第一行是否加粗

$objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setBold(true); //第一行是否加粗

$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setBold(true); //第一行是否加粗

$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setBold(true); //第一行是否加粗

//$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16); //第一行字体大小

// 设置垂直居中

$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('C1')->睁如getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

$objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

// 设置行高度

$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //设置默认行高

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); //第一行行高

//循环添加数据,注意的是下面的$kk+2,是因为$kk是下标,从0开始的,而第一行是你的标题,所以要从第二行开始才是你的数据

foreach ($data as $kk => $vv) {

$no = $kk + 2;

$currentSheet = $objPHPExcel->getActiveSheet();

$currentSheet->setCellValue('A' . $no, $vv['xueyuan']['name']);

$currentSheet->setCellValue('B' . $no, $vv['xueyuan']['chepaihao']);

$currentSheet->setCellValue('C' . $no, date('Y-m-d H:i:s',$vv['addtime']).'至'.date('Y-m-d H:i:s',$vv['sbttime']));

$currentSheet->setCellValue('D' . $no, $vv['score']);

//设置单元格高度,这个是重点哦

$currentSheet->getRowDimension($no) -> setRowHeight(40);

// 图片生成

$objDrawing[$kk] = new PHPExcel_Worksheet_Drawing();//这个就是生成图片的类(重点)

$objDrawing[$kk]->setPath('./'.$vv['qmimg']);/图片的路径

// 设置宽度高度

$objDrawing[$kk]->setHeight(85);//照片高度

$objDrawing[$kk]->setWidth(100); //照片宽度

/*设置图片要插入的单元格*/

$objDrawing[$kk]->setCoordinates('E'.$no);

// 图片偏移距离

$objDrawing[$kk]->setOffsetX(12);

$objDrawing[$kk]->setOffsetY(12);

$objDrawing[$kk]->setWorksheet($objPHPExcel->getActiveSheet());

}

$objPHPExcel->setActiveSheetIndex(0);

header('Content-Type: application/vnd.ms-excel');

header('Content-Disposition: attachment;filename="' . '文件名称'. '.xls"');

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

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

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

exit;

}推荐教程:《PHP教程》






sql查询的结果怎么导出

1.

这属于php的技术;

2.

php可以用毁拦行PHPExcel直接导出成excel文件;

代码如下:

require_once("../lib/excelcreator.class.php");

$myxls

=

new

ExcelCreator

("中文Excel");

$aTableHead

=

'衡基

ss:AutoFitHeight="0">

ss:Type="String">Name3

ss:Type="String">Surname3

';

$aTableBody

=

'

ss:AutoFitHeight="0">

ss:Type="String">Schwarz3

ss:Type="String">Oliver3

';

$aTableBottom

=

'

ss:AutoFitHeight="0">

ss:Type="String">123

ss:Type="String">Peter3

';

$workSheet

=

$myxls->createWorkSheet

(

"中文sheet1",

$aTableHead,

$aTableBody,

$aTableBottom

);

echo

$myxls->纤哗createExcel

(

$workSheet

);

php从数据库取数据输出

php导出大量数据到Excel,可以通过生成多个Excel文件,然后压缩成压缩包雀闹迹解决。

方案是:假如我们数据库有10w条数据,每2000条数据生成一个Excel文件,这样每次只要从数据库里查询出2000条数据即可,一定要分页去查询。弯启

原因:主要是数据库性能和写文件性能。分页查询可以解决数据库压力的问题,生成多个文件可以解决单个文件太大,后期维护Excel文件的问题。

要注意的:

1.在导出逻辑文件开头,一定要声明set_time_limit(0),防止脚本超时;

2.每个文件生成后,适当的sleep一下,让程序休息一下下;

3.因为一次导出最后要将生成的多个Excel文件打包成一个压缩包,所以要删除掉顷并生成的Excel文件,节省服务器存储空间;

下面是我实际工作中,写的一个php导出大量数据到Excel的代码,你可以参考一下:

以上就是php查询后并导出excel的全部内容,php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。

猜你喜欢