public function __construct($filePath, $previewPage = 1, $previewRowsPerPage = 20)
 {
     $this->currentPage = $previewPage;
     $this->rowsPerpPage = $previewRowsPerPage;
     $filter = new ChunckFilter($previewPage, $previewRowsPerPage);
     parent::__construct($filePath, $filter);
 }
 public static function getSheetNameIndex($filePath, $sheetName)
 {
     $reader = Process_excel::createExcelReader($filePath);
     $infos = $reader->listWorksheetInfo($filePath);
     for ($i = 0; $i < count($infos); $i++) {
         if ($infos[$i]['worksheetName'] == $sheetName) {
             return $i;
         }
     }
 }
function generate()
{
    global $upload_dir, $db, $current_user, $main_smarty, $the_template;
    // the file name that should be uploaded
    $file_tmp = $_FILES['upload_file']['tmp_name'];
    $file_name = $_FILES['upload_file']['name'];
    $unique_file_name = "tingtest1.ktr";
    $upload_dir = get_misc_data('upload_directory');
    $upload_path = mnmpath . $upload_dir . $unique_file_name;
    $upload = move_uploaded_file($file_tmp, $upload_path);
    /*create new ktr file*/
    $tmpDir = 'excel-to-target_schema.ktr';
    $newDir = '0.ktr';
    copy($tmpDir, $newDir);
    $a1 = $_POST["sheet"];
    $b1 = $_POST["row"];
    $c1 = $_POST["col"];
    $a = array($a1, "", "");
    $b = array($b1, "", "");
    $c = array($c1, "", "");
    $sheets = array($a, $b, $c);
    $spd = $_POST["spd"];
    $drd = $_POST["drd"];
    $start = $_POST["start"];
    $end = $_POST["end"];
    $start2 = $_POST["start2"];
    $end2 = $_POST["end2"];
    $location = $_POST["location"];
    $aggrtype = $_POST["aggrtype"];
    $location2 = $_POST["location2"];
    $aggrtype2 = $_POST["aggrtype2"];
    $process = new Process_excel();
    $arr_Sheet_name = $process->getSheetName('census.xls');
    $arr_Header = $process->getHeader('dataverse_census.xls', 0, 11, 'A');
    //print_r ($process->getHeader('tradestatistics.xls', 1, 23, 'A'));
    echo $start;
    /* adding url*/
    add_url(0, 'http://colfusion.exp.sis.pitt.edu/colfusion/upload_raw_data/irule_dataverse_census.xls');
    echo "hello";
    //add_sheets(0, $sheets);
    addSheets(0, "Table HH-1", 10, 0);
    addConstants('Spd', $spd, 'Date', 'yyyyMMdd');
    addConstants('Drd', $drd, 'Date', 'yyyyMMdd');
    add_excel_input_fields($arr_Header);
    add_sample_target();
    //$arr_Header - $array_no_need_normalize
    $no_need_Array = array($start, $end, $location, $aggrtype);
    //print_r ($no_need_Array);
    //print_r($arr_Header);
    $result = array_diff($arr_Header, $no_need_Array);
    //	print_r($result);
    /*--------------------the second $result are from user , the first $result need to use AJAX to present to user------*/
    add_normalizer($result, $result);
    //for variable of star
    if ($start != "") {
        //$start from excel
        update_target('Start', $start);
    } else {
        //$start from user input
        addConstants('Start_from_input', $start2, 'Date', 'yyyyMMdd');
        update_target('Start', 'Start_from_input');
    }
    //for variable of end
    if ($end != "") {
        //$start from excel
        update_target('End', $end);
    } else {
        //$start from user input
        addConstants('End_from_input', $end2, 'Date', 'yyyyMMdd');
        update_target('End', 'End_from_input');
    }
    //for variable of location
    if ($location != "") {
        echo $location;
        //$start from excel
        update_target('Location', $location);
    } else {
        //$start from user input
        echo $location2;
        addConstants('Location_from_input', $location2, 'String', '');
        update_target('Location', 'Location_from_input');
    }
    //for variable of aggrType
    if ($aggrtype != "") {
        //$start from excel
        update_target('AggrType', $aggrtype);
    } else {
        //$start from user input
        addConstants('AggrType_from_input', $aggrtype2, 'String', '');
        update_target('AggrType', 'AggrType_from_input');
    }
    //add_normalize($ArrayKey,$ArrayValue);
    echo $start;
    echo "........1<br/>";
    echo $start2;
    echo ".......2<br/>";
    echo $end;
    echo "..........3<br/>";
    echo $end2;
    echo "...........4<br/>";
    echo $location;
    echo "............5<br/>";
    echo $location2;
    echo "..........6<br/>";
    echo $aggrtype;
    echo "..........7<br/>";
    echo $aggrtype2;
    echo "............8<br/>";
    echo $spd;
    echo ".........9<br/>";
    echo $drd;
    echo "..........10<br/>";
}
 public function __construct($filePath, $sheetsRange)
 {
     $filter = new MatchSchemaFilter($sheetsRange);
     parent::__construct($filePath, $filter);
 }
function estimateLoadingProgress($dataSource_filePath)
{
    $ext = pathinfo($dataSource_filePath, PATHINFO_EXTENSION);
    $sampleFilePath = $ext == 'xlsx' ? "loadingTimeSample.xlsx" : "loadingTimeSample.xls";
    $PHPExcelReader = Process_excel::createExcelReader($dataSource_filePath);
    $PHPExcelReader->setReadDataOnly(true);
    $PHPExcelReader->setReadFilter(new NothingFilter());
    $sampleStart = time();
    $PHPExcelReader->load($sampleFilePath);
    $sampleEnd = time();
    $sampleLoadTime = $sampleEnd - $sampleStart;
    $sampleLoadTime = $sampleLoadTime > 0.015 ? $sampleLoadTime : 0.015;
    $targetFileSize = (double) filesize($dataSource_filePath);
    $sampleFileSize = (double) filesize($sampleFilePath);
    $estimatedSeconds = $sampleLoadTime * $targetFileSize / $sampleFileSize;
    $estimatedSeconds = $ext == 'xlsx' ? $estimatedSeconds * 4 : $estimatedSeconds;
    // Loading time does not increase in linear pattern when the file is small.
    // So the loading time is timed with an arbitrary number.
    echo $estimatedSeconds * 10;
}
 /**
  * @depends testLoadExcelFile
  */
 public function testSheetsName($excelProcessor)
 {
     $testSheets = array("Sheet1", "Sheet2", "Sheet3");
     $excelSheets = Process_excel::getSheetName($excelProcessor->getFilePath());
     $this->assertEquals(count(array_diff($testSheets, $excelSheets)), 0);
 }