ホームページ >バックエンド開発 >PHPチュートリアル >Codeigniter (CI) と PHPExcel クラスを組み合わせてデータのインポートを完了します
1) 圧縮パッケージ内の Classes フォルダーの内容を applicationlibraries ディレクトリに解凍します。 ディレクトリ構造は次のとおりです。
– applicationlibrariesPHPExcel.php
– applicationlibrariesPHPExcel (フォルダー)
2) applicationlibrariesPHPExcelIOFactory.php ファイルを変更します
– クラス名を PHPExcel_IOFactory から に変更します。 IOFactory は、CI クラスの命名規則に従います。
– コンストラクターを public(__construct) に変更します
public functionindex(){
// アップロードされたファイルの存在値を判定しますfile
if (! Empty ($ _ files)) {
$ Filename = $ _Files ['File'] ['name'] // "ファイル"]["タイプ"; ];//アップロードされるファイルの種類
$filesize = $_FILES["file"]["size"];//アップロードされるファイルのサイズ(バイト単位)
$filetmp = $_FILES["file" ]["tmp_name"];//サーバーに保存されているファイルの一時コピーの名前
,,, ファイルのアップロードによるエラー コード
if($ ファイルタイプ=="application/vnd.ms-excel" || $filetype=="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"){
$ filePath = 'uploads/excel/';
excel*/
$ this-> load-> library( 'phpexcel.php');
$ this->アップロードされたファイルの
$ extend = strrchr($ filename、 '。');
$ uploadfile = $ filepath成功した場合は true を返し、そうでない場合は false を返します。
$result=move_uploaded_file($filetmp,$uploadfile);//現在のディレクトリにアップロードされた場合
= IOFactory::identify($uploadfile);//入力ファイルの形式を決定します
$objPHPExcel = $objReader- >load($uploadfile);読む
$highestRow = $sheet->getHighestRow( ); ;
/* 最初のメソッド for($j=1;$j<=$highestRow;$j++) for($ j=1;$j<=$highestRow;$j++) / /最初の行からデータの読み取りを開始します
// > // この方法は簡単ですが、「\」の結合は不適切です。配列にマージされ、フィールド値がデータベースに挿入されます
// 測定値は Excel で測定されます。 \ import を含むデータは空になります
//
$str .=$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().'\';//セル
// エコー $str; );
$ Strs = Explode ("\", $ Str);
Print_r ($ Strs)
$ SQL = "Te (` ID`, `name`) (
' { $ strs [0]} '、
sqlステートメントは間違っています';
/*2 番目のメソッドの 2 番目のメソッド*/
$ Objworksheet = $objPHPExcel->getActiveSheet();
$highestColumn = $objWorksheet->getHighestColumn();
$ hightiestcolumnindex = phpexcel_cell :: columnindexfromstring($ hightestcolumn); //列の総数
🎜>) 🎜> / $sql = "INSERT INTO admins(`account`, `pwd`, `username`, `power`, `tel`,`sex`,`work_numjob`,`job`,`sector`) VAL UES (
// '{$ strs [0]}'、
// '{$ strs [3]}'、
'、
' account '=&gt; $ arr [' 0 ']] ,
'username'=>$arr['2'],
'power'=>$arr['3'],
'tel'=>$arr['4'],
'sex'=>$arr['5'],
'work_num'=>$arr['6'],
'job'=> ;$arr['7'],
'sector'=>$arr['8'],
);
$this->db->insert("admins", $data);
}
unlink($uploadfile);
show_msg("导入成功",site_url("链接地址"));//跳转地址
//删除上传的Excel文件
}
}else{
show_msg("上传文件非cvs格式,请重新上传");
}
}else{
switch ($fileerror){
ケース 1:
show_msg("上传的文件超过了php.ini中upload_max_filesize选项制限的值。");
Break;
ケース 2:
show_msg("上传文件的大小超过了HTML 表单中 MAX_FILE_SIZE 选项指定值");
Break;
ケース 3:
show_msg("文件只有部分被上传");
Break;
ケース 4:
show_msg("ファイルはアップロードされていません");
Break;
}
🎜>
注:
読み込み方法excelは指定できないので、ファイルを自動認識して自動で読み込むことができます。
1. Excel をインポートするのが最も簡単です最良の方法は、PHPExel の IO Factory を使用し、PHPExcel_IOFactory クラスの静的メソッド ロードを呼び出すことです。Excel2007、Excel2003XML、OOCalcSYLK、Gnumeric、CSV などのドキュメント形式を自動的に識別できます。 PHPExcel のインスタンスを返します。
//ファクトリ クラスを読み込みます
include'PHPExcel/IOFactory.php';
//読み込む xls ファイルのパス
$inputFileName = './sampleData/example1.xls';
/**PHPExcel_IOFactoryのloadメソッドを使用してExcel操作オブジェクトを取得 **/
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
$sheetData =$objPHPExcel->getActiveSheet()->toArray(null, true,true,true);
var_dump($sheetData);
1. Excel ドキュメントをロードするための ExcelReader を作成します
この Excel ドキュメントの形式がわかっている場合は、対応する Reader を作成して、読み取る Excel ドキュメントをロードできます。ただし、間違った種類のドキュメントをロードすると、予期しないエラーが発生する可能性があります。
$inputFileName = './sampleData/example1.xls';
/** 新しい Excel5 リーダーを作成します**/
$objReader = new PHPExcel_Reader_Excel5();
// $objReader = new PHPExcel_Reader_Excel2007();
// $objReader = new PHPExcel_Reader_Excel2003XML(); // $objReader = new PHPExcel_Reader_OOCalc();
// $objReader = new PHPExcel_Reader_SYLK();
// $objReader = new PHPExcel_Reader_Gnumeric();
// $objReader = new PHPExcel_Reader_CSV();
/** $inputFileName を PHPExcel オブジェクトにロードします**/
$objPHPExcel = $objReader->load($inputFileName);
// 現在のアクティブシートを取得します
$curSheet =$objPHPExcel->getActiveSheet();
🎜 > //テーブルのデータを 2 次元配列の形式で返します
読み取るファイルの形式が分からなくても、PHPExcel_IOFactory の createReader メソッドを使用して Reader オブジェクトを取得することもできます。
$inputFileType = 'Excel5'; // $inputFileType = 'Excel2007';
// $inputFileType = 'Excel2003XML ';
// $inputFileType = 'OOCalc';// $inputFileType = 'SYLK';
// $inputFileType = 'Gnumeric';// $inputFileType = 'CSV';
$inputFileName = './sampleData/example1.xls';
/** $inputFileType で定義されたタイプの新しいリーダーを作成します**/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/* * $inputFileName を PHPExcel オブジェクトにロードします**/
$objPHPExcel = $objReader->load($inputFileName);
// 現在のアクティブなシートを取得します
$curSheet = $objPHPExcel-> getActiveSheet ();
//テーブルのデータを 2 次元配列の形式で返します
$sheetData = $curSheet->toArray(null,true,true,true) );
ファイルを読み取る前にファイル形式が不明な場合は、IOFactory のidentify() メソッドを通じてファイルの種類を取得し、createReader() メソッドを使用してファイル リーダーにアクセスできます。
$inputFileName = './sampleData/example1.xls';
/**入力ファイルの形式を決定します **/
$inputFileType = PHPExcel_IOFactory::identify($inputFileName) ;
/**対応するリーダーを装着してください※*/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/**読み込むファイルをロード **/
$objPHPExcel = $objReader->load ($inputFileName);
load() メソッドを使用してファイルを読み込む前に、読み取りオプションを設定して読み込みの動作を制御できます。
setReadDataOnly() メソッドでは、テーブル データのデータ型を考慮しないようにリーダーを設定し、文字列形式で返します
$inputFileType = 'Excel5';
$inputFileName = './sampleData/example1.xls';
/** $inputFileType で定義されたタイプの新しいリーダーを作成します**/
$objReader = PHPExcel_IOFactory::createReader( $inputFileType);
/**構成セルのデータは文字列として返されます **/
$objReader->setReadDataOnly(true);
/** $inputFileName を PHPExcel オブジェクトにロードします**/
$objPHPExcel = $objReader->load($inputFileName);
$sheetData =$objPHPExcel->getActiveSheet()->toArray(null,true,true,true); ($sheetData);
詳細: http://blog.csdn.net/andy1219111/article/details/7673796; 🎜>