2012-04-17 9 views
0

私はExcelファイルを読む必要があるアプリケーションがあります。私は既にhttp://code.google.com/p/php-excel-reader/downloads/listからプラグインのexcel-file-readerを使ってこれを行っています。 私は、バックグラウンドプロセスでExcelファイルを読むために私のアプリケーションが必要です。そして、私はWindowsコマンドprompt.butからphpファイルを実行することを選択します。これを行うとコマンドプロンプトの結果が表示されます。ファイル名person2.xlsは、しかし、私はブラウザからPHPファイルを実行すると、それはExcelファイルを読むことができます。ここに私が意味することを理解するのに役立つコードがあります。PHPは、リーダーがコマンドプロンプトからExcelファイルを読み取ることができません

<?php 
require_once 'php-excel-reader\excel_reader2.php'; 
$db=pg_connect('host=localhost dbname=hris user=postgres password=Abcd1234'); 
$table='lin_people'; 
$dataExcel = new Spreadsheet_Excel_Reader('person2.xls'); 
$baris = $dataExcel->rowcount($sheet_index=0); 
$model=$table; 
$fieldsArray=pg_query('SELECT column_name FROM information_schema.columns WHERE table_name="'.$model.'"'); 
//$fieldsArray=Set::extract('/0/'.$model,$fieldsArray); 
$fieldNames=array_keys($fieldsArray[0][$model]); 
$tanda=false; 
for($batas=0;$batas<count($fieldNames);$batas++) 
{ 
    if($fieldNames[$batas]!='id') 
    { 
     if($tanda==false) 
     { 
      $fields[$batas]=$fieldNames[$batas]; 
     } 
     else 
     { 
      if($batas!=count($fieldNames)-1) 
      { 
       $fields[$batas]=$fieldNames[$batas+1]; 
      } 
     } 
    } 
    else 
    if($fieldNames[$batas]=='id') 
    { 
     $fields[$batas]=$fieldNames[$batas+1]; 
     $tanda=true; 
    } 
} 

$sukses = 0; 
$gagal = 0; 

for($i=2;$i<=$baris;$i++) 
{ 
    if(!empty($dataExcel)) 
    { 
     $this->$model->create(); 
     for($y=0;$y<count($fields);$y++) 
     { 
      if($y==0) 
      { 
       pg_query('INSERT INTO '.$model.' ('.$fields[$y].') VALUES("'.$dataExcel->val($i,$y+1).'")'); 
      } 
      else 
      { 
       $currID=pg_query('SELECT id FROM '.$model.' ORDER BY id desc LIMIT 1'); 
       pg_query('INSERT INTO '.$model.' ('.$fields[$y].') VALUES("'.$dataExcel->val($i,$y+1).'") WHERE id='.$currID); 
      } 
          //$this->$model->set($fields[$y],$dataExcel->val($i,$y+1)); 
     } 
    } 
        //$this->$model->save(); 
    if('dataExcel') 
    { 
     $sukses++; 
    } 
    else 
    { 
     $gagal++; 
    } 

} 

?>私は、コマンドプロンプトからPHPファイルを実行すると、このPHPファイルは、Excelファイルを読むか?私を助けてください作っことができますどのように

...

答えて

0

これは、か助けていない場合があります。私はそれが2つの事のうちの1つであると感じている:

  1. ファイルのアクセス許可。
  2. Mimeタイプが認識されません。それが動作しない場合は、mime type libraryを含める必要があり

    chmod("person2.xls",0777); 
    $dataExcel = new Spreadsheet_Excel_Reader('person2.xls'); 
    chmod("person2.xls",0644); 
    

ITSはおそらく二番目が、ここ2つのソリューションです。

+0

私はあなたのアドバイスとしてはchmodを実行すると、結果が警告されます。chmod():Cでのそのようなファイルやディレクトリはありません:\ xamppの\ htdocsに\アンドロ\ testExcel.p hpは4行目ですが、person2のファイルはphpファイルと同じディレクトリにありますが、ファイルが見つからないという結果が出ます。これには何が問題なのですか? – user1290932

0

コマンドプロンプトは、Windows以外の文字エンコード(文字形式)を使用します。たぶんあなたの問題がどこにあるのでしょうか。たとえば、ExcelのスプレッドシートをCSVまたはTEXT形式で保存しようとすると、Windowsの場合とDOSの場合の2種類のファイルタイプがあります。

ことができますことを願っています...

+0

dos用のCSVファイルを作成しました。しかし、前と同じ結果。 – user1290932

関連する問題