使用PHPExcel生成自动生成的Excel文件

时间:2012-07-06 10:29:20

标签: php mysql phpexcel

我希望我的excel文件中包含一些我从数据库中获取的数据,例如某人的姓名和年龄。

假设我的数据库中有10个人。我希望我的Excel文件中有这10个人。

基本上,你会得到:

NAME AGE

Person1 20 years

Person2 25 years

等等。我知道如何设置NAME和AGE的东西,但是我如何循环数据并将其写入excel文件?我在PHPExcel的文档中找不到任何相关内容。

这是我的MySQL:

$query = "SELECT * FROM bestelling"; 

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
    $name = $row['name'];
    $age = $row['age'];
}

2 个答案:

答案 0 :(得分:39)

我假设你已经创建了excel对象。我将它称为$ objPHPExcel以符合他们的例子。在这种情况下,您可以循环结果集并以这种方式填充电子表格:

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$rowCount = 1;
while($row = mysql_fetch_array($result)){
    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['name']);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['age']);
    $rowCount++;
}
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('some_excel_file.xlsx');

编辑:我已经更新了示例以提供完整的解决方案。

答案 1 :(得分:3)

以下是创建excel文件的完整代码:

import matplotlib.pyplot as plt
import numpy as np
import random

values = random.sample(range(0,1000), 1000)
times = np.arange(len(values)) * 10

# alternatively:
# times = np.arange(0, len(values)*10, 10)

plt.plot(times, values)