मैं अपने केकेपीएचपी वेबसाइट के साथ एक्सेल/सीएसवी निर्यात विकल्प को एकीकृत करना चाहता हूं, उपलब्ध घटकों या सहायकों के बारे में कोई विचार?केकेएफपी एक्सेल/सीएसवी निर्यात घटक
धन्यवाद!
मैं अपने केकेपीएचपी वेबसाइट के साथ एक्सेल/सीएसवी निर्यात विकल्प को एकीकृत करना चाहता हूं, उपलब्ध घटकों या सहायकों के बारे में कोई विचार?केकेएफपी एक्सेल/सीएसवी निर्यात घटक
धन्यवाद!
यह समाधान CakePHP 2.0 के लिए है .. यू भी CakePHP 1.3 में
चरण 1 यह एकीकृत कर सकते हैं:/देखें/सहायक निर्देशिका अपने ऐप्लिकेशन में Csv.php के रूप में निम्नलिखित फ़ाइल सहेजें
<?php
class CsvHelper extends AppHelper
{
var $delimiter = ',';
var $enclosure = '"';
var $filename = 'Export.csv';
var $line = array();
var $buffer;
function CsvHelper()
{
$this->clear();
}
function clear()
{
$this->line = array();
$this->buffer = fopen('php://temp/maxmemory:'. (5*1024*1024), 'r+');
}
function addField($value)
{
$this->line[] = $value;
}
function endRow()
{
$this->addRow($this->line);
$this->line = array();
}
function addRow($row)
{
fputcsv($this->buffer, $row, $this->delimiter, $this->enclosure);
}
function renderHeaders()
{
header('Content-Type: text/csv');
header("Content-type:application/vnd.ms-excel");
header("Content-disposition:attachment;filename=".$this->filename);
}
function setFilename($filename)
{
$this->filename = $filename;
if (strtolower(substr($this->filename, -4)) != '.csv')
{
$this->filename .= '.csv';
}
}
function render($outputHeaders = true, $to_encoding = null, $from_encoding ="auto")
{
if ($outputHeaders)
{
if (is_string($outputHeaders))
{
$this->setFilename($outputHeaders);
}
$this->renderHeaders();
}
rewind($this->buffer);
$output = stream_get_contents($this->buffer);
if ($to_encoding)
{
$output = mb_convert_encoding($output, $to_encoding, $from_encoding);
}
return $this->output($output);
}
}
?>
चरण 2: अपने नियंत्रक को यह हेल्पर जोड़ें:
var $helpers = array('Html', 'Form','Csv');
चरण 3: उदाहरण के लिए नियंत्रक पर एक विधि "डाउनलोड" पैदा करते हैं। homes_controller.php
<?php
function download()
{
$this->set('orders', $this->Order->find('all'));
$this->layout = null;
$this->autoLayout = false;
Configure::write('debug', '0');
}
?>
चरण 4: 5 (अंतिम चरण)
देखें पर इस कोड डाल/होम्स: आप CSV
<?php
echo $this->Html->link('Download',array('controller'=>'homes','action'=>'download'), array('target'=>'_blank'));
?>
चरण डाउनलोड करने के लिए है, जहां से पृष्ठ पर इस लिंक डाल /download.ctp
<?php
$line= $orders[0]['Order'];
$this->CSV->addRow(array_keys($line));
foreach ($orders as $order)
{
$line = $order['Order'];
$this->CSV->addRow($line);
}
$filename='orders';
echo $this->CSV->render($filename);
?>
हाल ही में, मैंने कुछ परियोजनाओं में काम किया है जिन्हें एक्सएलएस और सीएसवी में डेटा निर्यात करने की आवश्यकता है। इन सहायकों वास्तव में अच्छा काम करते हैं:
http://bakery.cakephp.org/articles/ifunk/2007/09/10/csv-helper-php5
http://bakery.cakephp.org/articles/wasenbr/2007/04/12/excel-xls-helper
हम दोनों एक साथ आयात नहीं कर सकते कुछ विकल्प चयन के साथ ही , जैसे कि आप सीएसवी या एक्सेल चाहते हैं, बल्कि दो अलग हैं lpers? –
cakePHP भीतर PHPExcel उपयोग के बारे में the bakery में एक लेख है। यह लाइब्रेरी कई अलग-अलग प्रारूपों में स्प्रेडशीट डेटा लिखने के विकल्प प्रदान करती है। लिंक किए गए बेकरी लेख में दिए गए उदाहरण xls और xlsx फ़ाइलों के लिए हैं, लेकिन सीएसवी भी एक विकल्प है।
कोई जरूरत किसी भी घटक या हेल्पर
महान ट्यूटोरियल http://andy-carter.com/blog/exporting-data-to-a-downloadable-csv-file-with-cakephp
नियंत्रक
public function export() {
$this->response->download("export.csv");
$data = $this->Subscriber->find('all');
$this->set(compact('data'));
$this->layout = 'ajax';
return;
}
route.php
Router::parseExtensions('csv');
export.ctp फ़ाइल
<?php
app/Views/Subscribers/export.ctp
foreach ($data as $row):
foreach ($row['Subscriber'] as &$cell):
// Escape double quotation marks
$cell = '"' . preg_replace('/"/','""',$cell) . '"';
endforeach;
echo implode(',', $row['Subscriber']) . "\n";
endforeach;
?>
की आवश्यकता है, आप मूल लेखक को क्रेडिट करना भूल गए: http: // andy-carter।कॉम/ब्लॉग/निर्यात-डेटा-टु-ए-डाउनलोड करने योग्य-सीएसवी-फ़ाइल-साथ-CakePHP – rocknrollcanneverdie
हाय सब कुछ ठीक से काम कर रहा है और स्थानीयहोस्ट में अच्छा है लेकिन अगर मैं ऑनलाइन कोशिश कर रहा हूं तो मैं पॉप-अप डाउनलोड नहीं कर पा रहा हूं लेकिन ब्राउज़र ब्राउज़र में ही गूंज रहा है। कृपया मुझे कोई समाधान सुझाएं। –
निर्यात किए गए एक्सेल फ़ाइल में भी HTML कोड प्राप्त करना .. फिर उस कोड के नीचे मेरी वांछित डेटा सूची है। किसी भी मदद फ़ाइल में निर्यात कोड क्यों है ?? –
क्या यह केकफ़्पी 3 में काम कर रहा है? – Faisal