请帮助,我正在尝试将mysql表中的数据按城市排序为excel文件(kol_17)。守则如下:
$rslt = mysql_query("SELECT DISTINCT kol_17 AS bmcity FROM temp_table ORDER BY kol_17 ASC");
while ($rowgroup = mysql_fetch_array($rslt)) {
$bm_city = $rowgroup['bmcity'];
echo "<br>Event City: <b>$bm_city</b>";
echo "<table border='1'>";
echo "<tr>";
echo "<td bgcolor='#C0C0C0'>Order Number</td>";
echo "<td bgcolor='#C0C0C0'>Item Code</td>";
echo "<td bgcolor='#C0C0C0'>Deposit</td>";
echo "<td bgcolor='#C0C0C0'>Total</td>";
echo "<td bgcolor='#C0C0C0'>Price</td>";
echo "<td bgcolor='#C0C0C0'>Trx MSISDN</td>";
echo "<td bgcolor='#C0C0C0'>Communication MSISDN</td>";
echo "<td bgcolor='#C0C0C0'>BM City</td>";
echo "<td bgcolor='#C0C0C0'>Se Area</td>";
echo "<td bgcolor='#C0C0C0'>Type of Sale</td>";
echo "</tr>";
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Order Number');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'Item Code');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'DuiTRI');
$objPHPExcel->getActiveSheet()->SetCellValue('D1', 'Total');
$objPHPExcel->getActiveSheet()->SetCellValue('E1', 'Price');
$objPHPExcel->getActiveSheet()->SetCellValue('F1', 'Trx MSISDN');
$objPHPExcel->getActiveSheet()->SetCellValue('G1', 'Communication MSISDN');
$objPHPExcel->getActiveSheet()->SetCellValue('H1', 'BM City');
$objPHPExcel->getActiveSheet()->SetCellValue('I1', 'Se Area');
$objPHPExcel->getActiveSheet()->SetCellValue('J1', 'Type of Sale');
$result = mysql_query("SELECT kol_0, kol_5, kol_8, kol_9, kol_10, kol_14, kol_15, kol_17, kol_18, kol_20 from temp_table WHERE kol_17 = '$bm_city' AND kol_5 like '70%'");
$colnum=1;
while ($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['kol_0'] . "</td>";
echo "<td>" . $row['kol_5'] . "</td>";
echo "<td>" . $row['kol_8'] . "</td>";
echo "<td>" . $row['kol_9'] . "</td>";
echo "<td>" . $row['kol_10'] . "</td>";
echo "<td>" . $row['kol_14'] . "</td>";
echo "<td>" . $row['kol_15'] . "</td>";
echo "<td>" . $row['kol_17'] . "</td>";
echo "<td>" . $row['kol_18'] . "</td>";
echo "<td>" . $row['kol_20'] . "</td>";
echo "</tr>";
$colnum++;
$objPHPExcel->getActiveSheet()->SetCellValue('A'."$colnum", $row["kol_0"]);
$objPHPExcel->getActiveSheet()->SetCellValue('B'."$colnum", $row["kol_5"]);
$objPHPExcel->getActiveSheet()->SetCellValue('C'."$colnum", $row["kol_8"]);
$objPHPExcel->getActiveSheet()->SetCellValue('D'."$colnum", $row["kol_9"]);
$objPHPExcel->getActiveSheet()->SetCellValue('E'."$colnum", $row["kol_10"]);
$objPHPExcel->getActiveSheet()->SetCellValue('F'."$colnum", $row["kol_14"]);
$objPHPExcel->getActiveSheet()->SetCellValue('G'."$colnum", $row["kol_15"]);
$objPHPExcel->getActiveSheet()->SetCellValue('H'."$colnum", $row["kol_17"]);
$objPHPExcel->getActiveSheet()->SetCellValue('I'."$colnum", $row["kol_18"]);
$objPHPExcel->getActiveSheet()->SetCellValue('J'."$colnum", $row["kol_20"]);
}
echo "</table>";
$objPHPExcel->getActiveSheet()->setTitle('Upload');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$sFileName = "preorder_".$rowgroup[0].".xlsx";
$objWriter->save('upload/'.$sFileName);
}结果,excel文件中仍然包含不应该包含的相同城市,但浏览器中是正确的。
谢谢。
发布于 2014-04-22 08:18:27
考虑一下您的代码逻辑。
在这个阶段,第7行、第8行和第9行是什么?PHPExcel对象没有被告知任何行都应该被删除,所以它们仍然被填充到城市#1的事件6、7和8中。
要么需要清除从前一个城市添加到工作表中的所有数据,要么需要为每个城市创建一个新的PHPExcel对象
https://stackoverflow.com/questions/23211436
复制相似问题