Problem to read cell formats (urgent)

Topics: Developer Forum, Project Management Forum, User Forum
Mar 26, 2012 at 12:18 PM

hi,

I am reading data from a xlsx file and just want to write that data to an another file after doing some change in some particular columns but at the writing time of new file with same data i lose all format  of my previous file . is there any way which can hold formatting for the remaining all field same which i not changed or is it possible that i append the same file with some changes . please revert back as soon as possible i tried all ways to do this thing and reads my blogs regarding this but can't find any solution

 

Thanks & Regards

 

Pankaj Sharma 

Mar 26, 2012 at 12:44 PM
Edited Mar 26, 2012 at 12:44 PM

If you happen to be using...

setReadDataOnly(true);

...that may be the culprit.

Mar 26, 2012 at 12:53 PM

i tried with commenting this line or even i set 

setReadDataOnly(false); my code is 

include_once ($_SERVER['DOCUMENT_ROOT'].'/PHPExcel.php');
                        include_once( $_SERVER['DOCUMENT_ROOT'].'/PHPExcel/IOFactory.php');
                        include_once($_SERVER['DOCUMENT_ROOT'].'/PHPExcel/Writer/Excel2007.php');
       
                    // Create new PHPExcel object
                    //$_SESSION['msg']=date('H:i:s') . " Create new PHPExcel object";
                   
                   
                    $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
                    $cacheSettings = array( ' memoryCacheSize ' => '300MB');
                    PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
                    PHPExcel_CachedObjectStorageFactory::initialize(PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp);
                    if (!$r) {
                        //die('Unable to set cell cacheing');
                    }


                    $objPHPExcel = new PHPExcel();
                    // Set properties
                    //$_SESSION['msg'].=date('H:i:s') . " Set properties\n";
                    $objPHPExcel->getProperties()->setCreator("");
                    $objPHPExcel->getProperties()->setLastModifiedBy("");
                    $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX");
                    $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX");
                    $objPHPExcel->getProperties()->setDescription("Office 2007 .");
                   
                        $flg=1;
//echo 'fdsfdsf8'.$_SERVER['DOCUMENT_ROOT'].'/temp/'.$target_path;
                        //die();
                        $objReader = PHPExcel_IOFactory::createReader($type);
                        //$objReader->setReadDataOnly(true);
                       
                        $objPHPExcel_reader = $objReader->load($_SERVER['DOCUMENT_ROOT'].'/temp/'.$target_path);

                        $title=array();
                        $data_sheet=array();
                        $import_data_sheet_ar=array();
                        //$objWorksheet = $objPHPExcel->getActiveSheet();
                        //$import_data_ar=array();
                        //$read_first=0;
                        //$date_colmn=array();
                        $sheet_number=0;
                       
                        foreach($objPHPExcel_reader->getSheetNames() as $idx => $sheetName)
                        {
                            if($sheet_number>0)
                            $objPHPExcel->createSheet($sheet_number+1);

                            $cnt=0;$counter=0;           
                            $objWorksheet =  $objPHPExcel_reader->getSheetByName($sheetName);
                            $title[]=$sheetName;
                            $import_data_ar=array();
                            $read_first=0;unset($do_pseudo);
                            unset($isdob);
                            unset($is_nhs);
                            $do_pseudo=array();
                            $isdob=array();
                            unset($date_colmn);
                            $is_nhs=array();$date_colmn=array();
                            //$cellIterator->setIterateOnlyExistingRow(false);                           
                            foreach ($objWorksheet->getRowIterator() as $row)
                            {
//                                    echo 'fdsfdsf10';
                                //    die();
                                $cellIterator = $row->getCellIterator();
                                $cellIterator->setIterateOnlyExistingCells(false);                           
                                $column=0;                                       
                                foreach ($cellIterator as $cell)
                                {
                                    $col=$column;
                                    $counter=$counter+1;
                                    $value=$cell_val=$cell->getValue();
                                   
                                    //print_r($value);
                                   
                                    $value=str_replace("\r\n",'',$value);
                                    $value=str_replace("\n",'',$value);
                                    //$import_data_ar[$idx][$read_first][$column]=$value;        //mobile   
                                    if($read_first==0)
                                    {
                                       
                                        $cname ='date';       
                                        $lowervalue=strtolower($value);   
                                        $lowervalue=preg_replace('/[^a-zA-Z]/s',"",$lowervalue);                       
                                        if($cname =strstr($lowervalue,$cname))
                                        {
                                            $date_colmn[]=$col;                               
                                        }
                                        $cname ='clock';
                                        if($cname =strstr($lowervalue,$cname))
                                        {
                                            $date_colmn[]=$col;                               
                                        }
                                        $cname ='dob';                           
                                        if($cname =strstr($lowervalue,$cname))
                                        {
                                            $date_colmn[]=$col;                               
                                        }
                                        $cname ='d.o.b';
                                        if($cname =strstr($lowervalue,$cname))
                                        {
                                            $date_colmn[]=$col;                               
                                        }
                                        $cname ='date of birth';
                                        if($cname =strstr($lowervalue,$cname))
                                        {
                                            $date_colmn[]=$col;                               
                                        }
                                       
                                        $dbh=parent::connect();
                                        $sql="select * from pseudo_fields union (select * from trust_pseudo_fields WHERE trust='".$_SESSION['trust_username']."')";
                                        //die();
                                        $result=mysql_query($sql,$dbh) or $error=mysql_error() ;
                                        mysql_close($dbh);
                                       
                                        if($result && mysql_num_rows($result)>0)
                                        {
                                            while($row=mysql_fetch_row($result))
                                            {
                                                //echo ;
                                                $str =$row[1];
                                                $str=preg_replace('/[^a-zA-Z]/s',"",$str);   
                                                $lowervalue=strtolower($value);   
                                                $lowervalue=preg_replace('/[^a-zA-Z]/s',"",$lowervalue);                       
                                                //echo '<br/>';
                                                //echo $col.'<br/>';
                                                if($str =strstr($lowervalue,$str))
                                                {
                                                    if($row[2]=='do_pseudo')
                                                    $do_pseudo[]=$col;
                                                    else if($row[2]=='isdob')
                                                    $isdob[]=$col;
                                                    else if($row[2]=='is_nhs')
                                                    $is_nhs[]=$col;
                                                }
                                                //$col++;
                                            }
                                            //die();
                                           
                                        }
                                        else
                                        {
                                            echo 'Pseudo Fields not found'.$error;
                                            exit();
                                        }                                                           
                                    }
                                   
                                    if($read_first==0)
                                    {
                                       
                                        //$import_data_ar[$idx][$read_first][$column]=$value;
                                        //echo $idx.' '.$read_first.' '.$column.'<br/>';
                                        //echo ' va  '.$value;
                                        if(in_array($col,$do_pseudo) || in_array($col,$is_nhs) || in_array($col,$isdob))
                                        {
    //                                        $import_data_ar[$idx][$read_first][$column]=$value;//.' # ';
//    print_r( $value);

                                        }
                $objPHPExcel->getSheet($sheet_number)->setCellValueByColumnAndRow( $col, $read_first+1, $value);
                                    }
                                    if($read_first>0)
                                    {   
                                      
                                        if(in_array($col,$do_pseudo))                               
                                        {
                                                $value=trim($this->encrypt($value,$secretKey));
                                        }
                                        //$rows>1 &&
                                        if(in_array($col,$is_nhs))
                                        {
                                            $value=trim($this->encrypt($value,'rahul'));
                                        }//$rows>1 &&
                                        if(in_array($col,$isdob))
                                        {
                                            $date_difference= $this->get_Age_difference($value,date("Y-m-d"));                       
                                            $date_difference=$date_difference.' || '.trim($this->encrypt($value,$secretKey));
                                            $value=trim($date_difference);
                                        }
                                        if(strlen($value)<1)
                                        $value='';
                                        //echo $idx.' '.$read_first.' '.$column.'<br/>';
                                            //echo ' va  '.$read_first.'  '.$value;
                                       
                                        $objPHPExcel->getSheet($sheet_number)->setCellValueByColumnAndRow( $col, $read_first+1, $value);
                                        //$import_data_ar[$idx][$read_first][$column]=$value;
                                    }$column++;
                                $objPHPExcel->getSheet($sheet_number)->setTitle($sheetName);
                            }
                            $cnt=$cnt+1;
                            $read_first++;
                        }
                            $sheet_number++;
                    }
                   
                    $sheet_no=0;
       
                    // Save Excel 2007 file
                    //echo date('H:i:s') . " Write to Excel2007 format\n";
                    $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
                    $fname=$target_path;
                    $target_path=$_SERVER['DOCUMENT_ROOT'].'/pseudofiles/'.$target_path;
                    $objWriter->save($target_path);           


but can't find solution ...