PHP如何将查询结束导出Excel
用户编号 | 用户名 | $row[0] | $row[1] | ";}sqlsrv_free_stmt( $query);sqlsrv_close( $conn);?>
回复讨论(解决方案)
用phpexcel
http://www.jz123.cn/text/2319267.html
fputcsv()
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment; filename="aaa.xls");
用phpexcel
http://www.jz123.cn/text/2319267.html
+1
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment; filename="aaa.xls");
+1
其实是excel的功能强大..
$str="A1\tA2\tA3\n";$str.="B1\tB2\tB3\n";你把这些字符写入到文件中,后缀名改为.xls,excel直接就能读..
其实是excel的功能强大..
$str="A1\tA2\tA3\n";$str.="B1\tB2\tB3\n";你把这些字符写入到文件中,后缀名改为.xls,excel直接就能读..
但实际上不是真正的xls文件。
其实是excel的功能强大..
$str="A1\tA2\tA3\n";$str.="B1\tB2\tB3\n";你把这些字符写入到文件中,后缀名改为.xls,excel直接就能读..
但实际上不是真正的xls文件。
$query = sqlsrv_query($conn,$sql);if( $query === false) { die( print_r( sqlsrv_errors(), true) );}while($row = sqlsrv_fetch_array($query)) { echo $objPHPExcel->getActiveSheet() ->setCellValue('A2', convertUTF8($row[0])) ->setCellValue('B2', convertUTF8($row[1])) ->setCellValue('C2', convertUTF8($row[2])) ->setCellValue('D2', convertUTF8($row[3])) ->setCellValue('E2', convertUTF8($row[4])) ->setCellValue('F2', convertUTF8($row[5])) ->setCellValue('G2', convertUTF8($row[6])) ->setCellValue('H2', convertUTF8($row[7])) ->setCellValue('I2', convertUTF8($row[8])) ->setCellValue('J2', convertUTF8($row[9])) ->setCellValue('K2', convertUTF8($row[10])) ->setCellValue('L2', convertUTF8($row[11]));}请问这段代码有问题吗?为什么在执行时报以下错误:
Catchable fatal error: Object of class PHPExcel_Worksheet could not be converted to string in D:\MarsdenWeb\Report\output_002.php on line 19
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
->setCellValue(' A2', convertUTF8($row[0]))
->setCellValue(' B2', convertUTF8($row[1]))
->setCellValue(' C2', convertUTF8($row[2]))
->setCellValue('D2', convertUTF8($row[3]))
->setCellValue('E2', convertUTF8($row[4]))
->setCellValue('F2', convertUTF8($row[5]))
->setCellValue('G2', convertUTF8($row[6]))
->setCellValue('H2', convertUTF8($row[7]))
->setCellValue('I2', convertUTF8($row[8]))
->setCellValue('J2', convertUTF8($row[9]))
->setCellValue('K2', convertUTF8($row[10]))
->setCellValue('L2', convertUTF8($row[11]));
标红的部分循环中没有更改,所以会覆盖之前单元格的值。
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
->setCellValue(' A2', convertUTF8($row[0]))
->setCellValue(' B2', convertUTF8($row[1]))
->setCellValue(' C2', convertUTF8($row[2]))
->setCellValue('D2', convertUTF8($row[3]))
->setCellValue('E2', convertUTF8($row[4]))
->setCellValue('F2', convertUTF8($row[5]))
->setCellValue('G2', convertUTF8($row[6]))
->setCellValue('H2', convertUTF8($row[7]))
->setCellValue('I2', convertUTF8($row[8]))
->setCellValue('J2', convertUTF8($row[9]))
->setCellValue('K2', convertUTF8($row[10]))
->setCellValue('L2', convertUTF8($row[11]));
标红的部分循环中没有更改,所以会覆盖之前单元格的值。
不太明白你的意思,那我应该怎么改呢?
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
->setCellValue(' A2', convertUTF8($row[0]))
->setCellValue(' B2', convertUTF8($row[1]))
->setCellValue(' C2', convertUTF8($row[2]))
->setCellValue('D2', convertUTF8($row[3]))
->setCellValue('E2', convertUTF8($row[4]))
->setCellValue('F2', convertUTF8($row[5]))
->setCellValue('G2', convertUTF8($row[6]))
->setCellValue('H2', convertUTF8($row[7]))
->setCellValue('I2', convertUTF8($row[8]))
->setCellValue('J2', convertUTF8($row[9]))
->setCellValue('K2', convertUTF8($row[10]))
->setCellValue('L2', convertUTF8($row[11]));
标红的部分循环中没有更改,所以会覆盖之前单元格的值。
不太明白你的意思,那我应该怎么改呢?
$i = 2;while($row = sqlsrv_fetch_array($query)) { $objPHPExcel->getActiveSheet() ->setCellValue('A'.$i, convertUTF8($row[0])) ->setCellValue('B'.$i, convertUTF8($row[1])) ->setCellValue('C'.$i, convertUTF8($row[2])) ->setCellValue('D'.$i, convertUTF8($row[3])) ->setCellValue('E'.$i, convertUTF8($row[4])) ->setCellValue('F'.$i, convertUTF8($row[5])) ->setCellValue('G'.$i, convertUTF8($row[6])) ->setCellValue('H'.$i, convertUTF8($row[7])) ->setCellValue('I'.$i, convertUTF8($row[8])) ->setCellValue('J'.$i, convertUTF8($row[9])) ->setCellValue('K'.$i, convertUTF8($row[10])) ->setCellValue('L'.$i, convertUTF8($row[11])); $i++;}
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
->setCellValue(' A2', convertUTF8($row[0]))
->setCellValue(' B2', convertUTF8($row[1]))
->setCellValue(' C2', convertUTF8($row[2]))
->setCellValue('D2', convertUTF8($row[3]))
->setCellValue('E2', convertUTF8($row[4]))
->setCellValue('F2', convertUTF8($row[5]))
->setCellValue('G2', convertUTF8($row[6]))
->setCellValue('H2', convertUTF8($row[7]))
->setCellValue('I2', convertUTF8($row[8]))
->setCellValue('J2', convertUTF8($row[9]))
->setCellValue('K2', convertUTF8($row[10]))
->setCellValue('L2', convertUTF8($row[11]));
标红的部分循环中没有更改,所以会覆盖之前单元格的值。
不太明白你的意思,那我应该怎么改呢?
$i = 2;while($row = sqlsrv_fetch_array($query)) { $objPHPExcel->getActiveSheet() ->setCellValue('A'.$i, convertUTF8($row[0])) ->setCellValue('B'.$i, convertUTF8($row[1])) ->setCellValue('C'.$i, convertUTF8($row[2])) ->setCellValue('D'.$i, convertUTF8($row[3])) ->setCellValue('E'.$i, convertUTF8($row[4])) ->setCellValue('F'.$i, convertUTF8($row[5])) ->setCellValue('G'.$i, convertUTF8($row[6])) ->setCellValue('H'.$i, convertUTF8($row[7])) ->setCellValue('I'.$i, convertUTF8($row[8])) ->setCellValue('J'.$i, convertUTF8($row[9])) ->setCellValue('K'.$i, convertUTF8($row[10])) ->setCellValue('L'.$i, convertUTF8($row[11])); $i++;}
谢谢您!终于解决了导出问题。。。
但现在是自动保存的,有没有办法可以自己另存为呢?
$objPHPExcel>getActiveSheet()
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
去掉echo后,是不报错了,但while循环好像就失效了,导出的结果就只有一条数据。
->setCellValue(' A2', convertUTF8($row[0]))
->setCellValue(' B2', convertUTF8($row[1]))
->setCellValue(' C2', convertUTF8($row[2]))
->setCellValue('D2', convertUTF8($row[3]))
->setCellValue('E2', convertUTF8($row[4]))
->setCellValue('F2', convertUTF8($row[5]))
->setCellValue('G2', convertUTF8($row[6]))
->setCellValue('H2', convertUTF8($row[7]))
->setCellValue('I2', convertUTF8($row[8]))
->setCellValue('J2', convertUTF8($row[9]))
->setCellValue('K2', convertUTF8($row[10]))
->setCellValue('L2', convertUTF8($row[11]));
标红的部分循环中没有更改,所以会覆盖之前单元格的值。
不太明白你的意思,那我应该怎么改呢?
$i = 2;while($row = sqlsrv_fetch_array($query)) { $objPHPExcel->getActiveSheet() ->setCellValue('A'.$i, convertUTF8($row[0])) ->setCellValue('B'.$i, convertUTF8($row[1])) ->setCellValue('C'.$i, convertUTF8($row[2])) ->setCellValue('D'.$i, convertUTF8($row[3])) ->setCellValue('E'.$i, convertUTF8($row[4])) ->setCellValue('F'.$i, convertUTF8($row[5])) ->setCellValue('G'.$i, convertUTF8($row[6])) ->setCellValue('H'.$i, convertUTF8($row[7])) ->setCellValue('I'.$i, convertUTF8($row[8])) ->setCellValue('J'.$i, convertUTF8($row[9])) ->setCellValue('K'.$i, convertUTF8($row[10])) ->setCellValue('L'.$i, convertUTF8($row[11])); $i++;}
谢谢您!终于解决了导出问题。。。
但现在是自动保存的,有没有办法可以自己另存为呢?
不看文档啊?
最后的->save()
改为:
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$FileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter->save('php://output');
其实是excel的功能强大..
$str="A1\tA2\tA3\n";$str.="B1\tB2\tB3\n";你把这些字符写入到文件中,后缀名改为.xls,excel直接就能读..
但实际上不是真正的xls文件。
嗯,确实不是,而且中文在国外看还有乱码的可能性,后来改成html的,不仅能解决乱码,而且样式也能控制,不得不说这excel太强大了
推荐阅读
-
PHP如何将查询结束导出Excel
-
php将数据库导出成excel的方法_PHP教程
-
PHP将Excel导入数据库及数据库数据导出至Excel的方法,excel数据导出_PHP教程
-
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
-
具体讲解PHP导出Excel乱码的解决方法
-
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
-
在WEB页面上将EXCEL文件导入、导出到数据库中_PHP
-
php如何将查询到的多条数据拼接成一个文本变量?
-
php导出excel格式数据问题_PHP教程
-
atitit.导出excel的设计查询结果 导出为excel的实现java .net php 总结