用php和mysql导出生成的Excel文件很大

时间:2018-07-19 06:50:40

标签: php mysql excel

我正在使用php和mysql生成Excel文件。一切正常。我正在使用html表代码并将数据导出到excel文件。但是下载的文件具有20k记录的更大大小,它显示了将近35 MB。下面是我的代码。

<?php 
$generated_date =  date("Y-m-d-H-i-s"); 
$filename = 'order_detail_report'.$generated_date;
header("Content-Type: application/xls");    
header("Content-Disposition: attachment; filename=$filename.xls");  
header("Pragma: no-cache"); 
header("Expires: 0");
?>

HTML表代码

<table width="100%" border="0" cellspacing="0" cellpadding="0" >
  <tr>
    <th class="excel_style">Order Number</th>
    <th class="excel_style">EAN</th>
    <th class="excel_style">Article #</th>
    <th class="excel_style">Amazon Price</th>
    <th class="excel_style">ERP Price</th>
    <th class="excel_style">Requested Quantity</th>
    <th class="excel_style">Dispatch Quantity</th>
    <th class="excel_style">Rejected Quantity</th>
    <th class="excel_style">Cancelled Quantity</th>
  </tr>

循环时

<?php 
$query = "my select query";
$res = mysqli_query($mysqliConn,$query);
while($result= mysqli_fetch_assoc($res)){
?>
<tr>
<td class="tdstyle"><?php echo $result['order_id'];?></td>
<td class="tdstyle"><?php echo $result['ean'];?></td>
<td class="tdstyle"><?php echo $result['article_no'];?></td>
<td class="tdstyle"><?php echo $result['net_price'];?></td>
<td class="tdstyle"><?php echo $result['erp_price'];?></td>
<td class="tdstyle"><?php echo $result['requested_quantity'];?></td>
<td class="tdstyle"><?php echo $result['dispatch_quantity']?></td>
<td class="tdstyle"><?php echo $result['rejected_quanity'];?></td>
<td class="tdstyle"><?php echo $result['cancelled_quantity']?></td>
</tr>
<?php } ?>
</table>

如何解决这种文件大小的问题?任何帮助将不胜感激。如果我使用phpexcel库,则会遇到内存不足的异常。因此客户问我不要使用phpexcel库。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚确切的问题是什么-结果生成文件的大小或内存耗尽?

但是,让我们假设问题出在内存耗尽。您是否真的需要生成excel(.xslx)文件或可以接受CSV格式?这样,您可以生成内存使用率非常低的CSV文件

from seqio import seq
from . import seq