ExcelファイルをMySQLデータベースにインポートするプラグインを検索しようとしましたが、そのうちの1つは http://code.google.com/p/php-Excel-reader/ です
このツールは非常に強力であるため、Excelコンテンツ全体をhtmlに表示します。
ただし、Excelファイルを読み取って、たとえば配列に内容を抽出し、データベースに入るためのSQLステートメントを記述するだけでよいと思います。
良いコードとパッケージはありますか?ありがとう!
これは、適切なドキュメントとサンプルを備えた最高のプラグインです
プラスポイント:discussion forum で助けを求めることができ、著者自身から1日以内に回答を得られます。
時々、大きなxlsxファイルをデータベースにインポートする必要があるので、spreadsheet-reader
行ごとにファイルを読み取ることができるため。インポートするのは非常にmemory-efficient方法です。
<?php
// If you need to parse XLS files, include php-Excel-reader
require('php-Excel-reader/Excel_reader2.php');
require('SpreadsheetReader.php');
$Reader = new SpreadsheetReader('example.xlsx');
// insert every row just after reading it
foreach ($Reader as $row)
{
$db->insert($row);
}
?>
処理する前に.xlsを.csvに変換できる場合、以下のクエリを使用してcsvをデータベースにインポートできます。
load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
ExcelファイルをCSVファイルとして保存すると、PHPMyAdminなどのツールを使用してmysqlデータベースにインポートできます
これがあなたの状況に役立つかどうかはわかりませんが、手動またはプログラムでcsvファイルを使用すると、思っていたExcelファイルよりもデータベースに簡単に解析できます。
編集:しかし、@ diEchoの回答がより適切と思われるので、私よりも他の回答を見ることをお勧めします。
私は継承クラスを書きました:
<?php
class ExcelReader extends Spreadsheet_Excel_Reader {
function GetInArray($sheet=0) {
$result = array();
for($row=1; $row<=$this->rowcount($sheet); $row++) {
for($col=1;$col<=$this->colcount($sheet);$col++) {
if(!$this->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
$val = $this->val($row,$col,$sheet);
$result[$row][$col] = $val;
}
}
}
return $result;
}
}
?>
だから私はこれを行うことができます:
<?php
$data = new ExcelReader("any_Excel_file.xls");
print_r($data->GetInArray());
?>