<form action="user.php" method="POST">
用户编号:<input type="text" name="u_num" size="12" value="<?php echo $_POST['u_num']; ?>" />
用户名:<input type="text" name="u_name" size="20" value="<?php echo $_POST['u_name']; ?>" />
<input type="submit" name="sub" value=" 查询 " />
<input type="button" value="导出Excel" />
</form><table>
<tr>
<td>用户编号</td>
<td>用户名</td>
</tr><?php
if(!empty($_POST["u_num"])){
$u_num = "where u_id='"."{$_POST['u_num']}"."'";
}$sql = "select * from msd.dbo.user";$query = sqlsrv_query($conn,$sql);
if( $query === false) {
die( print_r( sqlsrv_errors(), true) );
}while($row = sqlsrv_fetch_array($query)) {
echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
}sqlsrv_free_stmt( $query);
sqlsrv_close( $conn);
?></table>PHPexcel导出汇出
用户编号:<input type="text" name="u_num" size="12" value="<?php echo $_POST['u_num']; ?>" />
用户名:<input type="text" name="u_name" size="20" value="<?php echo $_POST['u_name']; ?>" />
<input type="submit" name="sub" value=" 查询 " />
<input type="button" value="导出Excel" />
</form><table>
<tr>
<td>用户编号</td>
<td>用户名</td>
</tr><?php
if(!empty($_POST["u_num"])){
$u_num = "where u_id='"."{$_POST['u_num']}"."'";
}$sql = "select * from msd.dbo.user";$query = sqlsrv_query($conn,$sql);
if( $query === false) {
die( print_r( sqlsrv_errors(), true) );
}while($row = sqlsrv_fetch_array($query)) {
echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
}sqlsrv_free_stmt( $query);
sqlsrv_close( $conn);
?></table>PHPexcel导出汇出
解决方案 »
- Wordpress编辑器与发布到前台格式的问题
- 请问,simplexml_load_string怎么读取节点的属性啊?
- 高分求php生成机器码的问题?
- 关于数据库查询问题
- 帮帮忙,初学,第一个函数就出错
- PHP文件在服务端用命令运行,要做成Shell Script吗,怎么做?
- 有熟悉discuz程序的吗
- 一个最简单类似留言板,刷新又添加了一条记录怎么办?
- Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'
- mysql查询中的小数点是什么意思,
- 求解mysql的com_select状态?
- php+mysql乱码问题求指导
http://www.jz123.cn/text/2319267.html
header("Content-Disposition:attachment; filename="aaa.xls");
$str="A1\tA2\tA3\n";
$str.="B1\tB2\tB3\n";你把这些字符写入到文件中,后缀名改为.xls,excel直接就能读..
但实际上不是真正的xls文件。
但实际上不是真正的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]));
}请问这段代码有问题吗?为什么在执行时报以下错误:
->setCellValue()操作的结果是返回 PHPExcel_Worksheet 对象,把前面的echo去掉吧
->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]));标红的部分循环中没有更改,所以会覆盖之前单元格的值。
->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]));标红的部分循环中没有更改,所以会覆盖之前单元格的值。
不太明白你的意思,那我应该怎么改呢?
->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++;
}
->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++;
}
谢谢您!终于解决了导出问题
但现在是自动保存的,有没有办法可以自己另存为呢?
->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');
但实际上不是真正的xls文件。
嗯,确实不是,而且中文在国外看还有乱码的可能性,后来改成html的,不仅能解决乱码,而且样式也能控制,不得不说这excel太强大了