我是PHPExcel的新手,不知怎的,我使用以下代码在Excel电子表格中获得了相同的数据:
<?php
$roster_sql = "SELECT * FROM EMPLOYEE";
$roster_result = mysql_query($roster_sql) or die(mysql_error());
// Populate 2D Array
$kcount = 0;
while($sheet_array = mysql_fetch_array($roster_result))
{
$sheet[$kcount] = $sheet_array;
$kcount++;
}
$rowID = 1;
foreach($sheet as $rowArray)
{
$columnID = 'A';
foreach($rowArray as $columnValue)
{
$objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
$columnID++;
}
$rowID++;
}
?>
生成的电子表格在列中复制了每个单元格值。我是否错误地填充了数组或者在写出数组时出了什么问题?
此外,如何在不对SQL中的列名进行硬编码的情况下在同一电子表格中编写标题行?
感谢您的帮助。
答案 0 :(得分:0)
mysql_fetch_array()
的默认行为是返回一个数组,其中包含每列的枚举 和 关联值。即$ result_type参数是MYSQL_BOTH。
如果您只想要一个关联的或一个枚举结果(但不是两者),那么您需要指定它,例如。
while($sheet_array = mysql_fetch_array($roster_result, MYSQL_ASSOC))
或
while($sheet_array = mysql_fetch_array($roster_result, MYSQL_NUM))
或使用其中一个相关功能,例如
while($sheet_array = mysql_fetch_assoc($roster_result))
或
while($sheet_array = mysql_fetch_row($roster_result))
修改强>
如果要将列名称写为标题,则需要调用mysql_list_fields()之类的内容来获取表的列列表
或者,将数据作为关联数组检索,然后键值将是您的列名