2014-01-16 3 views
1

У меня есть следующий код в разделе моего инвентаря, когда я запускаю этот код, он сохраняет файл excel, но результат показывает весь html-файл, а не мои данные.Joomla Экспорт или загрузка отчетов в CSV

<?php 

$csv = NULL; 
$arr = array("product_name","product_sku","product_in_stock","virtuemart_product_id","product_price_display","product_instock_value"); 
$csv = "Product Name, Product SKU, In Stock, Booked ordered products, Cost Price, Stock Value \n"; 
$c=0; 
while(list($key,$value)=each($arr)){ 
$c++; 
$cc=1; 
foreach ($this->inventorylist as $key => $product){ 
$cc++; 
$csv .= join(',',array($product->product_name.",".$product->product_sku.",".$product->product_in_stock.",".$product->virtuemart_product_id.",".$product->product_price_display.",".$product->product_instock_value))." \n"; 

} 

} 

JResponse::clearHeaders(); 
JResponse::setHeader('Content-Type', 'application/vnd.ms-excel', true); 
JResponse::setHeader('Content-Disposition', 'csv; filename=inventory_report.csv; size='.strlen($csv), true); 
JResponse::sendHeaders(); 

Любая помощь будет оценена по достоинству.

Благодаря

Khalique

+0

Что happends если вы var_dump переменная '$ csv'? – Lodder

+0

Посмотрите на основной компонент com_banners, он загружает файл csv. – Elin

ответ

1

Вот перебор решение только, чтобы вы собираетесь:

header("Content-type: text/csv"); 
header("Content-Disposition: attachment; filename=file.csv"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

// Echo the csv content. 
echo "foo,bar\n1,2"; 

// Close the application gracefully. 
JFactory::getApplication()->close(); 

Немного уборщик способ без использования точки зрения, но в том числе &format=raw в URL является:

$app = JFactory::getApplication(); 
$doc = JFactory::getDocument(); 

$doc->setMimeEncoding('application/vnd.ms-excel'); 

$app->setHeader(
    'Content-disposition', 
    'attachment; filename="inventory_report.csv"', 
    true 
); 

echo "foo,bar\n1,2"; 

Но лучший способ - использовать загрузку просмотр на основе типа документа raw. Вы можете найти пример в com_banners:

Вы можете также получить некоторые дополнительные проникновения в суть от этого обсуждения https://groups.google.com/forum/#!topic/joomla-dev-general/dRa_39AGDBY

+0

Спасибо за ваш ответ – user3202948

Смежные вопросы