예제 #1
0
파일: ods.php 프로젝트: Ibrahim1/aec
 public function finishExport()
 {
     include_once JPATH_SITE . '/components/com_acctexp/lib/ods-php/ods.php';
     $ods = newOds();
     $ofs = 0;
     if (!empty($this->description) && !empty($this->sum)) {
         $ofs++;
         foreach ($this->description as $cid => $cell) {
             $ods->addCell(0, $ofs, $cid, htmlentities($cell), 'string');
         }
     }
     foreach ($this->lines as $line) {
         $ofs++;
         foreach ($line as $cid => $cell) {
             $ods->addCell(0, $ofs, $cid, htmlentities($cell), 'string');
         }
     }
     if (!empty($this->sum)) {
         $ofs++;
         foreach ($this->sum as $cid => $cell) {
             $ods->addCell(0, $ofs, $cid, htmlentities($cell), 'string');
         }
     }
     $fname = 'aecexport_' . urlencode(stripslashes($this->name)) . '_' . date('Y_m_d', (int) gmdate('U'));
     $fpath = '/tmp/' . $fname . '.' . $this->params['export_method'];
     saveOds($ods, $fpath);
     $handle = fopen($fpath, "r");
     echo fread($handle, filesize($fpath));
     exit;
 }
    function openoffice($tables)
    {
        // http://www.ibm.com/developerworks/web/library/wa-odf/index.html?ca=drs-#list10
        include '../dbplumber/thirdparty/ods-php-0.1rc1/ods.php';
        //include the class and wrappers
        $rawsheetcontent = '<?xml version="1.0" encoding="UTF-8"?>
		<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0"><office:scripts/><office:font-face-decls><style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/><style:font-face style:name="DejaVu Sans" svg:font-family="&apos;DejaVu Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/></office:font-face-decls><office:automatic-styles><style:style style:name="co1" style:family="table-column"><style:table-column-properties fo:break-before="auto" style:column-width="2.267cm"/></style:style><style:style style:name="ro1" style:family="table-row"><style:table-row-properties style:row-height="0.453cm" fo:break-before="auto" style:use-optimal-row-height="true"/></style:style><style:style style:name="ta1" style:family="table" style:master-page-name="Default"><style:table-properties table:display="true" style:writing-mode="lr-tb"/></style:style></office:automatic-styles><office:body><office:spreadsheet></office:spreadsheet></office:body></office:document-content>';
        $sheet = new ods();
        $sheet->parse($rawsheetcontent);
        foreach ($tables as $table) {
            $rowno = 0;
            foreach (DB::query("SELECT * FROM \"{$table}\"") as $row) {
                $colno = 0;
                foreach ($row as $key => $val) {
                    if ($rowno == 0) {
                        $sheet->addCell($table, 0, $colno, $key, 'string');
                    }
                    $sheet->addCell($table, $rowno + 1, $colno, Convert::raw2xml($val), is_numeric($val) ? 'float' : 'string');
                    $colno++;
                }
                $rowno++;
            }
            if (!$rowno) {
                $colno = 0;
                foreach (DB::fieldList($table) as $name => $spec) {
                    $sheet->addCell($table, 0, $colno++, $name, 'string');
                }
            }
        }
        saveOds($sheet, TEMP_FOLDER . '/new.ods');
        //save the object to a ods file
        $output = file_get_contents(TEMP_FOLDER . '/new.ods');
        unlink(TEMP_FOLDER . '/new.ods');
        return $output;
    }
예제 #3
0
파일: metrics.php 프로젝트: Norky/PBS-tools
function result_as_ods($result, $mycolumnname, $filebase)
{
    $myresult = $result;
    $cache = APACHE_CACHE_DIR;
    if (!file_exists("/tmp/" . $cache)) {
        mkdir("/tmp/" . $cache, 0750);
    }
    $odsfile = $filebase . ".ods";
    $workbook = newOds();
    $sheet = 0;
    $rowctr = 0;
    $colctr = 0;
    foreach ($mycolumnname as $header) {
        $workbook->addCell($sheet, $rowctr, $colctr, "{$header}", "string");
        $colctr++;
    }
    while ($myresult->fetchInto($row)) {
        $rowctr++;
        $colctr = 0;
        $keys = array_keys($row);
        foreach ($keys as $key) {
            $data = array_shift($row);
            $type = "string";
            # regex found on http://www.regular-expressions.info/floatingpoint.html
            if (preg_match('/^[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?$/', $data)) {
                $type = "float";
            }
            $workbook->addCell($sheet, $rowctr, $colctr, htmlspecialchars("{$data}"), $type);
            $colctr++;
        }
    }
    saveOds($workbook, "/tmp/" . $cache . $odsfile);
    echo "<P>ODF file:  <A href=\"" . $cache . rawurlencode($odsfile) . "\">" . $odsfile . "</A></P>\n";
}
예제 #4
0
<?php

/*
ods-php a library to read and write ods files from php.
This library has been forked from eyeOS project and licended under the LGPL3
terms available at: http://www.gnu.org/licenses/lgpl-3.0.txt (relicenced
with permission of the copyright holders)
Copyright: Juan Lao Tebar (juanlao@eyeos.org) and Jose Carlos Norte (jose@eyeos.org) - 2008 
https://sourceforge.net/projects/ods-php/
*/
include "ods.php";
//include the class and wrappers
$object = newOds();
//create a new ods file
$object->addCell(0, 0, 0, 1, 'float');
//add a cell to sheet 0, row 0, cell 0, with value 1 and type float
$object->addCell(0, 0, 1, 2, 'float');
//add a cell to sheet 0, row 0, cell 1, with value 1 and type float
$object->addCell(0, 1, 0, 1, 'float');
//add a cell to sheet 0, row 1, cell 0, with value 1 and type float
$object->addCell(0, 1, 1, 2, 'float');
//add a cell to sheet 0, row 1, cell 1, with value 1 and type float
saveOds($object, '/tmp/new.ods');
//save the object to a ods file
$object = parseOds('/tmp/new.ods');
//load the ods file
$object->editCell(0, 0, 0, 25);
//change the value for the cell in sheet 0, row 0, cell 0, to 25
saveOds($object, '/tmp/new2.ods');
//save with other name
예제 #5
0
		function generateBook($book, $format) {

			$this->book= $book;			
			
			if (!$book->bookId)
				$bookName= "spreadsheet-1";	
			else	
				$bookName= "spreadsheet-$book->bookId";
							
			$filename= "default-".rand(1,9999);
			

			/*SET SPREADSHEET PROPERTIES*/
			if ($format!= "ods"){

				$this->objPHPExcel = new PHPExcel();
				$this->objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
				$this->objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
				$this->objPHPExcel->getProperties()->setTitle("Test Document");
				$this->objPHPExcel->getProperties()->setSubject("Test Document");
				$this->objPHPExcel->getProperties()->setDescription("Test document generated using PHP classes.");
				$this->objPHPExcel->getProperties()->setKeywords("office php");
				$this->objPHPExcel->getProperties()->setCategory("Test result file");

			}
			else{
				$this->objPHPOds= new PHPOds(); //create a new ods file
			}

			/*GENERATE THE SHEETS*/
			$this->_generateSheets($format);


			global $cnf;
			$currentDir= $cnf['path']['Temp']."/";  // Get the Storage Folder


			switch($format){

				case "ods":
							saveOds($this->objPHPOds,"$filename.$format"); //save the object to a ods file
							break;

				case "pdf":
							$objWriter1 = new PHPExcel_Writer_PDF($this->objPHPExcel);
							$objWriter1->writeAllSheets();
							$objWriter1->setTempDir($currentDir);
							$objWriter1->save("$filename.$format");	//save the object to a pdf file
							break;

				case "xls":
							$objWriter2 = new PHPExcel_Writer_Excel5($this->objPHPExcel);
							$objWriter2->setTempDir($currentDir);
							$objWriter2->save("$filename.$format");	//save the object to a xls file
							break;

				case "xlsx":
							$objWriter3 = PHPExcel_IOFactory::createWriter($this->objPHPExcel, 'Excel2007');
							$objWriter3->save($currentDir."$filename.$format"); //save the object to a xlsx file
							break;

				case "csv":
							$objWriter4 = new PHPExcel_Writer_CSV($this->objPHPExcel);
							//$objWriter4->setTempDir($currentDir);
							$objWriter4->setDelimiter(';');
							$objWriter4->setEnclosure('');
							$objWriter4->setLineEnding("\r\n");
							$objWriter4->save("$filename.$format");	//save the object to a CSV file
							break;
							
				case "html":
							$objWriter5 = new PHPExcel_Writer_HTML($this->objPHPExcel);
							$objWriter5->writeAllSheets();
							//$objWriter5->setTempDir($currentDir);
							$objWriter5->save("$filename.$format");	//save the object to a HTML file
							break;
							

			}

			if ($format != "ods")
				$this->_send("$filename.$format", $format, $bookName);

		}
예제 #6
0
 function output()
 {
     $name = 'doc.ods';
     $tmp = get_tmp_dir();
     $uid = uniqid();
     mkdir($tmp . '/' . $uid);
     $path = $tmp . '/' . $uid . '/' . basename('temp.ods');
     saveOds($this, $path);
     if (isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) {
         header('Content-Type: application/force-download');
     } else {
         header('Content-Type: application/octet-stream');
     }
     $buffer = file_get_contents($path);
     header('Content-Length: ' . strlen($buffer));
     header('Content-disposition: attachment; filename="' . $name . '"');
     echo $buffer;
     unlink($path);
     rmdir($tmp . '/' . $uid);
 }
예제 #7
0
<?php

/*
ods-php a library to read and write ods files from php.
This library has been forked from eyeOS project and licended under the LGPL3
terms available at: http://www.gnu.org/licenses/lgpl-3.0.txt (relicenced
with permission of the copyright holders)
Copyright: Juan Lao Tebar (juanlao@eyeos.org) and Jose Carlos Norte (jose@eyeos.org) - 2008 
https://sourceforge.net/projects/ods-php/
*/
include "ods.php";
//include the class and wrappers
$object = newOds();
//create a new ods file
$object->addCell(0, 0, 0, 1, 'float');
//add a cell to sheet 0, row 0, cell 0, with value 1 and type float
$object->addCell(0, 0, 1, 2, 'float');
//add a cell to sheet 0, row 0, cell 1, with value 1 and type float
$object->addCell(0, 1, 0, 1, 'float');
//add a cell to sheet 0, row 1, cell 0, with value 1 and type float
$object->addCell(0, 1, 1, 2, 'float');
//add a cell to sheet 0, row 1, cell 1, with value 1 and type float
saveOds($object, '/tmp/new.ods');
//save the object to a ods file
$object = parseOds(dirname(__FILE__) . '/new.ods');
//load the ods file
$object->editCell(0, 0, 0, 25);
//change the value for the cell in sheet 0, row 0, cell 0, to 25
saveOds($object, dirname(__FILE__) . '/new2.ods');
//save with other name