ホームページ > バックエンド開発 > PHPチュートリアル > phpExcel を使用して Excel データをインポートおよびエクスポートする (すべての手順の詳細な分析)_PHP チュートリアル

phpExcel を使用して Excel データをインポートおよびエクスポートする (すべての手順の詳細な分析)_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:17:39
オリジナル
948 人が閲覧しました

多くの記事で phpExcel を使用して Excel データをインポートおよびエクスポートすることが述べられていますが、ほとんどの記事は似たようなもの、または転載されており、いくつかの問題があるでしょう。 以下は、phpExcel の使用ルーチンを研究してまとめた使用方法です。 . 次へ トピックに直接移動します。

まず最初に言っておきますが、私のこのルーチンは Thinkphp 開発フレームワークで使用されており、同じ方法を他のフレームワークで使用すると、多くの人が Excel のインポートとエクスポートを正しく実装できない可能性があります。基本的に phpExcel のコア クラスの参照パスが間違っています。問題がある場合は、Lu Jin が正しく参照されているかどうかを全員でテストする必要があります。

(1) Excelにインポート

まず、フロント HTML ページにファイルをアップロードします。例:

コードをコピーします コードは次のとおりです:

I & lt; 入力タイプ = "送信" 値 = "インポート"

& lt; /form & gt; if (! empty ( $_FILES ['file_stu'] ['name'] )


{
$tmp_file = $_FILES ['file_stu'] ['tmp_name'];

$file_types =explode ( ".", $_FILES ['file_stu'] ['name'] );
$file_type = $file_types [カウント ( $file_types ) - 1];
ITでは(strtolower)($ file_type));
} /*アップロードパスを設定*/ $savePath = SITE_PATH '/public/upfile/Excel/';
,,,,、 アップロードが成功したかどうか* /
if (! Copy ($ tmp_file, $ savepath. $ File_name)) {
$ this- & gt; error ('upload failed');

/*


* アップロードされた Excel データを処理してプログラミング データを生成します。この関数は、以下の 3 番目のステップの ExcelToArray クラスに含まれます

注: 3 番目のステップ クラスの読み取り関数は、Excel を配列に変換して $res に返し、データベースに書き込むためにここで呼び出されます

*/
$res = Service ( 'ExcelToArray' )->read ( $savePath . $file_name );

/*

Thinkphp MメソッドとDメソッドが呼び出せない問題を解決するための重要なコード


with with M with D メソッドを thinkphp に追加するには、次のコードを追加しますか?

*/

//spl_autoload_register ( array ('Think', 'autoload' ) );

/*生成された配列をデータベースに書き込みます*/

foreach ( $res as $k => $v )

{
$v [0];
$data ['パスワード'] = sha1 ('111111') ;
$data ['uname'] = $v [3];

$ data ['Institute'] $ dataエラー( 'データベースのインポートに失敗した');

}


3 番目: ExcelToArrary クラス、phpExcel の参照と Excel データの処理に使用されます
コードをコピー コードは次のとおりです:

class ExcelToArrary extends Service{

パブリック関数 __construct() {

/*phpExcel コア クラスをインポートする 注: パスが私のものと異なる場合、直接コピーすることはできません*/
include_once('./Excel/PHPExcel.php');
}

/**

* Excel の読み取り $filename パス ファイル名 $encode 戻りデータのエンコーディングのデフォルトは utf8 です

※以下は基本的に改変しないでください

*/

パブリック関数 read($filename,$encode='utf-8'){

$objReader = PHPExcel_IOFactory::createReader('Excel5');

$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load($filename);

$objWorksheet = $objPHPExcel->getActiveSheet();

$highestRow = $objWorksheet->getHighestRow();

$highestColumn = $objWorksheet->getHighestColumn();

$exc elData = array();のために($ row = 1; $ row< = $ highestrow; $ row ++){

objworksheet-> getcellbycolumnandrow($ col、$ row) - > getValue();

}

}


4 番目に、上記はインポートされたすべてのコンテンツであり、最後に phpExcel パッケージが添付されます。



(2) Excel エクスポート (インポートよりはるかに簡単)

まず、Excel を生成するためにデータベース内のデータを見つけます。次のようなものです。

$data= M('User')->findAll(); //データを検索します
$name='Excelfile' //生成された Excel ファイルのファイル名$res=service('ExcelToArrary') -> ;push($data,$name);

2 番目に、ExcelToArrary クラスを使用して phpExcel を参照し、データを処理します

コードをコピーします

コードは次のとおりです:


クラス ExcelToArrary は Service{ を拡張します

パブリック関数 __construct() {

H/*Phpexcel のコア カテゴリをインポートします。 注: あなたのパスは私と同じではありません。直接コピーすることはできません*/

include_once ('./ Excel/Phpexcel.php');
/* Excel 関数をエクスポート*/
public function Push($data,$name='Excel'){

error_reporting(E_ALL);
date_default_timezone_set('ヨーロッパ/ロンドン');

$objPHPExcel = new PHPExcel();


/*以下は作者、タイトルなどの設定です*/
"The Turning Sun")

-& gt; ("データ Excel エクスポート")

-& gt;エクスポート")
-& gt; setdescript ("バックアップ データ")
-& gt; setKeywords ("Excel")
カテゴリ ( "結果ファイル");
/*以下は Excel でデータを処理し、基本的にはこのステップ以外は変更しないでください。
$ num = $ k+1;
的 // Excel の列 A、UID は、次のタイプの配列を検出します。 setCellValue ('a'. $ Num, $ v ['uID'])
-& gt; (setCellValValue( 'b'。$ num、$ v ['email'])
H $ Objphpexcel-& GT()-& GT; YPE: Application/VND.MS-EXCEL '); name。 '。xls "');
ヘッダー( 'キャッシュコントロール:max-age = 0');

、 'excel5');


第三に、上記はエクスポートされたすべてのコンテンツであり、最後に phpExcel パッケージが添付されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/621725.html技術記事多くの記事で phpExcel を使用して Excel データをインポートおよびエクスポートすることが述べられていますが、ほとんどの記事は似たようなものであるか、再版されており、以下は私が調べたものです...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート