Public Member Functions | |
__construct ($dataProvider, $exportFull=true, $includeColumnHeaders=true, $delimiter=null, $enclosure=null) | |
getDataProvider () | |
dontConvertProvider () | |
setToAppend () | |
setDelimiter ($delimiter) | |
getDelimiter () | |
setEnclosure ($enclosure) | |
getEnclosure () | |
setOutputFile ($filename) | |
getOutputFile () | |
setCallback ($callback) | |
getCallback () | |
setHeaders (array $headers) | |
getHeaders () | |
setHeader ($key, $value) | |
setExclude ($noshow) | |
getExclude () | |
getModelRelations () | |
setModelRelations (array $relations) | |
exportCurrentPageOnly () | |
toCSV ($outputFile=null, $delimiter=null, $enclosure=null, $includeHeaders=true) | |
_loopRows (&$dp) | |
_writeRow ($row) |
Static Public Member Functions | |
static | lambdaFail (&$value, $key) |
static | stripSlashes (&$value, $key) |
Public Attributes | |
$includeColumnHeaders = true | |
$stripNewLines = true | |
$exportFull = true | |
$convertActiveDataProvider = true |
Protected Member Functions | |
_writeData () | |
_writeHeaders ($row) |
Protected Attributes | |
$_outputFile | |
$_filePointer | |
$_dataProvider | |
$_callback | |
$_headers = array() | |
$_exclude = array() | |
$_delimiter = "," | |
$_enclosure = '"' | |
$_appendCsv = false | |
$_modelRelations = array() |
export a csv file (string) from given CSqlDataProvider usage in your controller: Yii::import('ext.CSVExport'); $provider = YourClass::model()->createCSqlProvider() or $provider = Yii::app()->db->creatCommand(...)->queryAll(); $csv = new ECSVExport($provider); $content = $csv->toCSV(); Yii::app()->getRequest()->sendFile($filename, $content, "text/csv", false); exit();
You can also do this now: $cmd = Yii::app()->db->createCommand("SELECT * FROM track_test LIMIT 10"); $csv = new ECSVExport($cmd); $csv->setOutputFile($outputFile); $csv->toCSV();
Definition at line 25 of file ECSVExport.php.
ECSVExport::__construct | ( | $dataProvider, | |
$exportFull = true , |
|||
$includeColumnHeaders = true , |
|||
$delimiter = null , |
|||
$enclosure = null |
|||
) |
mixed | $dataProvider | array|CSqlDataProvider|CActiveDataProvider|CDbCommand |
boolean | $exportFull | |
boolean | $includeColumnHeaders | |
string | $delimiter | |
string | $enclosure |
Definition at line 124 of file ECSVExport.php.
References $exportFull, and $includeColumnHeaders.
ECSVExport::_loopRows | ( | & | $dp | ) |
loop through result set
mixed | CDbDataReader|array $dp |
Definition at line 511 of file ECSVExport.php.
|
protected |
where the magic happens. depending on type of dataProvider, it uses different methods to get the data efficiently and to write to file pointer in memory. the most effecient is either a small array or by just passing in a CDbCommand instance
Exception | - no data found |
Definition at line 411 of file ECSVExport.php.
References _writeHeaders(), and _writeRow().
Referenced by toCSV().
|
protected |
Write headers to csv file, taking into account string replacements and exclusions
array | $row |
Definition at line 539 of file ECSVExport.php.
Referenced by _writeData().
ECSVExport::_writeRow | ( | $row | ) |
Write array row to current {$this->_filePointer}, taking into account exclusions
array | $row |
Definition at line 577 of file ECSVExport.php.
Referenced by _writeData().
ECSVExport::dontConvertProvider | ( | ) |
call this function to not force CActiveDataProvider to be converted to command for speed and memory at the expense of losing the with() functionality
Definition at line 148 of file ECSVExport.php.
ECSVExport::exportCurrentPageOnly | ( | ) |
turn off going through whole resultset, taking current page into account
Definition at line 331 of file ECSVExport.php.
ECSVExport::getCallback | ( | ) |
get per row function
Definition at line 247 of file ECSVExport.php.
References $_callback.
ECSVExport::getDataProvider | ( | ) |
get data provider
Definition at line 137 of file ECSVExport.php.
References $_dataProvider.
ECSVExport::getDelimiter | ( | ) |
get current delimiter
Definition at line 180 of file ECSVExport.php.
References $_delimiter.
ECSVExport::getEnclosure | ( | ) |
ECSVExport::getExclude | ( | ) |
get excluded fields
Definition at line 303 of file ECSVExport.php.
References $_exclude.
ECSVExport::getHeaders | ( | ) |
get current csv headers
Definition at line 267 of file ECSVExport.php.
References $_headers.
ECSVExport::getModelRelations | ( | ) |
get the set model relations return array $this->_modelRelations
Definition at line 312 of file ECSVExport.php.
ECSVExport::getOutputFile | ( | ) |
get output file
Definition at line 222 of file ECSVExport.php.
References $_outputFile.
ECSVExport::setCallback | ( | $callback | ) |
function to be called for each row in set
mixed | callable|array $callback |
Exception | on uncallable variable |
Definition at line 233 of file ECSVExport.php.
ECSVExport::setDelimiter | ( | $delimiter | ) |
set csv delimiter, defaults to ,
type | $delimiter |
Definition at line 170 of file ECSVExport.php.
ECSVExport::setEnclosure | ( | $enclosure | ) |
set csv enclosure, defaults to "
type | $enclosure |
Definition at line 191 of file ECSVExport.php.
ECSVExport::setExclude | ( | $noshow | ) |
type | $noshow |
Definition at line 289 of file ECSVExport.php.
ECSVExport::setHeader | ( | $key, | |
$value | |||
) |
string | $key | |
string | $value |
Definition at line 278 of file ECSVExport.php.
ECSVExport::setHeaders | ( | array | $headers | ) |
existing column names remapped to other strings resultcolumn=>new name
array | $headers |
Definition at line 257 of file ECSVExport.php.
ECSVExport::setModelRelations | ( | array | $relations | ) |
set relations to include on output that will be interpolated via model crap needs to be array of arrays
array | $relations |
Definition at line 322 of file ECSVExport.php.
ECSVExport::setOutputFile | ( | $filename | ) |
set filename of csv file you want to create
type | $filename |
Definition at line 212 of file ECSVExport.php.
Referenced by toCSV().
ECSVExport::setToAppend | ( | ) |
sets flag to have it append to file instead of just overwriting it
Definition at line 158 of file ECSVExport.php.
ECSVExport::toCSV | ( | $outputFile = null , |
|
$delimiter = null , |
|||
$enclosure = null , |
|||
$includeHeaders = true |
|||
) |
create a csv string, or file if $outputFile is set
string | $outputFile | |
string | $delimiter | |
string | $enclosure | |
boolean | $includeHeaders |
Definition at line 347 of file ECSVExport.php.
References _writeData(), and setOutputFile().
|
protected |
per row callable function
Definition at line 74 of file ECSVExport.php.
Referenced by getCallback().
|
protected |
data provider that will generate or contain resultset
Definition at line 68 of file ECSVExport.php.
Referenced by getDataProvider().
|
protected |
|
protected |
string to enclose fields when delimiter is found in field
Definition at line 99 of file ECSVExport.php.
Referenced by getEnclosure().
|
protected |
columns to exclude from final file
Definition at line 87 of file ECSVExport.php.
Referenced by getExclude().
|
protected |
stream pointer
Definition at line 62 of file ECSVExport.php.
|
protected |
|
protected |
boolean ECSVExport::$convertActiveDataProvider = true |
convert activedata provider to a cdbcommand for speed
Definition at line 49 of file ECSVExport.php.
boolean ECSVExport::$exportFull = true |
run through whole resultset, appending to output stream, using paging (if on)
Definition at line 43 of file ECSVExport.php.
Referenced by __construct().
boolean ECSVExport::$includeColumnHeaders = true |
show column headers in csv file
Definition at line 31 of file ECSVExport.php.
Referenced by __construct().