1.Excelを入力する最も簡単な方法は次のとおりです。 PHPExel の IO ファクトリを使用し、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);
//現在アクティブなテーブルを取得し、toArray メソッドを呼び出し、テーブルの 2 次元配列を取得します
$sheetData =$objPHPExcel->getActiveSheet() ->toArray(null, true,true,true);
var_dump($sheetData);
1. Excel ドキュメントをロードするための ExcelReader を作成します
この Excel ドキュメントの形式がわかっている場合は、次のように作成できます。対応する Reader を使用して、読みたいファイルを読み込みます。ただし、間違った種類のドキュメントをロードすると、予期しないエラーが発生する可能性があります。
コードをコピーします コードは次のとおりです:
$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();
//テーブルのデータを二次元配列の形式で返します
$sheetData = $curSheet->toArray(null,true,true,true);
var_dump($sheetData);
も利用可能 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();
//テーブルのデータを二次元配列の形式で返します
$sheetData = $curSheet->toArray(null,true,true ,true);
var_dump($sheetData) ;
ファイルを読み取る前にファイル形式が不明な場合は、IOFactory のidentify() メソッドを通じてファイルの種類を取得し、createReader() メソッドを使用してアクセスできます。ファイルリーダー。
コードをコピーします コードは次のとおりです:
$inputFileName = './sampleData/example1.xls';
/**入力ファイルの形式を決定します **/
$inputFileType = PHPExcel_IOFactory::identify($ inputFileName);
/**対応するリーダーを装着してください※*/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/**読み込むファイルをロード **/
$objPHPExcel = $objReader->load($inputFileName);
2 .Excel の読み取りオプションを設定します
load() メソッドを使用してファイルを読み込む前に、読み取りオプションを設定して読み込みの動作を制御できます。
2.1. スプレッドシート ファイルからの読み取り専用データ
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);
var_dump($sheetData);
戻りデータ:
コードをコピー コードは次のとおりです:
array(8) {
[1]=>
array(6) {
["A"]=>
string(15) "整数"
["B"]=>
string( 3)"123"
["C"]=>
文字列(3)"234"
["D"]=>
文字列(4)"-345"
["E"]=>
string(3)"456"
["F"]=>
NULL
}
[2]=>
array(6) {
["A"]=>
string(22) "浮動小数点数"
["B"]=>
文字列(4) "1.23"
["C"]=>
文字列(5) "23.45"
["D"]=>
文字列(10) " 0.00E+0.00"
["E"]=>
string(6) "-45.68"
["F"]=>
string(7) "£56.78"
}
[3]=>
array(6) {
["A"]=>
string(7) "Strings"
["B"]=>
string(5) "Hello"
["C"]=>
string(5) "World"
["D"]=>
NULL
["E"]=>
string(8) "PHPExcel"
["F"]=>
NULL
}
[ 4]=>
array(6) {
["A"]=>
string(8) "Booleans"
["B"]=>
bool(true)
["C"]=> ;
bool(false)
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[5]=>
配列(6) {
["A"]=>
string(5) "日付"
["B"]=>
string(16) "1960年12月19日"
["C"]=>
string(15) "2010 年 10 月 10 日"
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[6]=> ;
array(6) {
["A"]=>
string(5) "Times"
["B"]=>
string(4) "9:30"
["C"]= >
string(5) "23:59"
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[7 ]=>
array(6) {
["A"]=>
string(8) "数式"
["B"]=>
string(3) "468"
["C"] =>
string(7) "-20.998"
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[8 ]=>
array(6) {
["A"]=>
string(6) "エラー"
["B"]=>
string(4) "#N/A"
[" C"]=>
string(7) "#DIV/0!"
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
}
如果不設置 戻り値:
array(8) {
[1]=>
array(6) {
["A"]=>
string(15) "整数"
["B"]=>
float(123)
["C"]=>
float(234)
["D"]=>
float(-345)
["E"] =>
float(456)
["F"]=>
NULL
}
[2]=>
array(6) {
["A"]=>
string(22) "浮動小数点数"
["B"]=>
float(1.23)
["C "]=>
float(23.45)
["D"]=>
float(3.45E-6)
["E"]=>
float(-45.678)
["F"]=> ;
float(56.78)
}
[3]=>
array(6) {
["A"]=>
string(7) "文字列"
["B"]=>
string( 5) "Hello"
["C"]=>
string(5) "World"
["D"]=>
NULL
["E"]=>
string(8) "PHPExcel"
["F"]=>
NULL
}
[4]=>
array(6) {
["A"]=>
string(8) "ブール値"
["B"]= >
bool(true)
["C"]=>
bool(false)
["D"]=>
NULL
["E"]=>
NULL
["F"]= >
NULL
}
[5]=>
array(6) {
["A"]=>
string(5) "日付"
["B"]=>
float(22269)
["C"]=>
float(40461)
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[6]=>
array(6) {
["A"]=>
string(5) "Times"
["B"]=>
float(0.39583333333333)
["C"]= >
float(0.99930555555556)
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[7] =>
array(6) {
["A"]=>
string(8) "数式"
["B"]=>
float(468)
["C"]=>
float(-20.99799655 )
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
[8]=>
array(6) {
["A"]=>
文字列(6) "エラー"
["B"]=>
文字列(4) "#N/A"
["C"]=>
文字列(7) "#DIV/0!"
["D"]=>
NULL
["E"]=>
NULL
["F"]=>
NULL
}
}
データの読み取り専用SpreadsheetFile からのリーダーへの適用:
Excel2007 YES Excel5 YES Excel2003XML YES
OOCalc YES SYLK NO数値 はい
CSV いいえ
2.2.ファイルからの名前付きワークシートの読み取りのみ
setLoadSheetsOnly()、取得するワークシートを設定し、パラメータとしてワークシートの名前を受け取ります。
/**PHPExcel_IOFactory*/
include'PHPExcel/IOFactory.php';
$inputFileType = 'Excel5';
// $inputFileType = 'Excel2007';
// $inputFileType = 'Excel2003XML';
/ / $inputFileType = 'OOCalc';
// $inputFileType = 'Gnumeric';
$inputFileName ='./sampleData/example1.xls';
$sheetname = 'データシート #2';
echo 'ファイルをロード中' ,pathinfo($inputFileName,PATHINFO_BASENAME),' 定義されたリーダー タイプ ',$inputFileType,'
' で IOFactory を使用します;
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
echo 'シートの読み込み中" ',$sheetname,'" のみ
';
$objReader->setLoadSheetsOnly($sheetname);
$objPHPExcel =$objReader->load($inputFileName);
echo '
echo$objPHPExcel->getSheetCount(),' ワークシート',(($objPHPExcel->getSheetCount()== 1) ? '' : 's'),' ロードされました
< br />';
$loadedSheetNames =$objPHPExcel->getSheetNames();
foreach($loadedSheetNames as$sheetIndex => $loadedSheetName) {
echo $sheetIndex,' -> ',$loadedSheetName,'
';
}
如果想读取多个ワークシート,可以传递一数组
复制發代码如下:
$inputFileType = 'エクセル5';
$inputFileName = './sampleData/example1.xls';
$sheetnames = array('データシート #1','データシート #3');
/** $inputFileType で定義されたタイプの新しいリーダーを作成します **/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/** どのワークシートをロードするかを読者に通知します **/
$objReader->setLoadSheetsOnly($sheetnames);
/** $inputFileName を PHPExcel オブジェクトにロードします **/
$objPHPExcel = $objReader->load($inputFileName);
すべてのワークシートを取得する場合は、setLoadAllSheets() を使用できます。
http://www.bkjia.com/PHPjc/327797.html
www.bkjia.com本当http://www.bkjia.com/PHPjc/327797.html技術記事 Excel の書き込みと生成操作: 複制代価次のように: include 'PHPExcel.php'; 「PHPExcel/Writer/Excel2007.php」をインクルードします。 //または「PHPExcel/Writer/Excel5.php」を含めます; 出力用...