0

我在 sql 表中有 150 行和 40 列..我在网页中显示整个表..现在,我想做的是在该网页上创建一个链接,该链接将获取整个表并将其插入一个 excel 文件(如果它创建一个新的 excel 文件或修改现有的总和并不重要)...现在我可以通过使用(PHPExcel 库)手动完成,”objPHPExcel->setCellValue('C5', $v ) "...但是我必须像这样写 40 次(在每个语句中更改 '$v' 变量)并且它在一个将运行 150 次的循环内..因此我不想这样做..

现在我想知道我是否可以在excel表中逐行插入表格..就像我插入一行时,它会插入d行的整个单元格..那样会很容易..所以我想知道是否有任何特定的命令可以做到这一点..

如果没有,我还有其他选择吗?我想做的就是使用 php 将整个 sql 表导出到 excel 文件中。

4

2 回答 2

0

因此,请使用fromArray()PHPExcel 精心提供的方法,该方法允许您在一次调用中从数组中写入整行或整块单元格。

查看示例和阅读文档总是有帮助的

附加说明

顺便说一句,$objPHPExcel->setCellValue('C5', $v)只有工作$objPHPExcel表才有效,大多数示例都使用 $objPHPExcel 作为工作簿(即工作表的集合),所以不要混淆

编辑

要从数据库中获取结果,请使用

sqlsrv_fetch_array($tsql, SQLSRV_FETCH_ASSOC)

或者

sqlsrv_fetch_array($tsql, SQLSRV_FETCH_NUMERIC)

编辑 2

检查数据库如何设置为处理 NULL 返回;但使用

$objPHPExcel->getActiveSheet()->fromArray($rows, 0, 'A'.$rowCNT);

应将数据库结果中的所有 NULL 值设置为 PHPExcel 中的 0 值

于 2013-04-30T08:03:55.383 回答
0

最简单的方法是导出一个 .csv 文件,excel 也可以读取该文件。您所要做的就是创建此页面:

<?
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0"); 
$link = mysql_connect('db', 'dblogin', 'dbpasswd');
@mysql_select_db('dbname') or die( "Unable to select database");
$query=mysql_query("SELECT * FROM whatever");
$j=0;
$nbField = mysql_num_fields($query);
while ($j < $nbField) {
    echo mysql_field_name($query,$j).";";
$j++;   
}
echo "\n";
while ($row = mysql_fetch_array($query, MYSQL_NUM)) { echo implode(";", $row)."\n"; } 
?>

然后你插入一个直接指向这个 php 页面的链接,它将下载 csv 文件。

于 2013-04-30T09:27:12.247 回答