0

Excelファイルを読み取る必要があるアプリケーションがあります。http://code.google.com/p/php-excel-reader/downloads/listのプラグイン Excel-file-reader を使用して、これを既に行っています。今、アプリケーションがバックグラウンド プロセスで Excel ファイルを読み取る必要があり、Windows コマンド プロンプトから php ファイルを実行することを選択しました。ブラウザから 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ファイルを読み込ませるにはどうすればよいですか?助けてください...

4

2 に答える 2

0

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

  1. ファイルのアクセス許可。
  2. 認識できない MIME タイプです。

おそらく2番目のものですが、ここに2つの解決策があります:

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

それでもうまくいかない場合は、MIME タイプ ライブラリを含める必要があるかもしれません。

于 2012-04-17T07:58:11.040 に答える
0

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

それが役立つことを願っています...

于 2012-04-17T08:48:29.333 に答える