6

PHPを使用してExcelファイルからデータをインポートし、可能であればMySQLデータベースに保存したいと考えています。

4

5 に答える 5

19

Excelファイル(XLS)からのインポートは、CSVファイルからのインポートよりもはるかに困難です。通常、XLSをExcelでCSVに保存してから、PHPでこのCSVを処理します...

PHP関数fgetcsvを見てください:http: //ca.php.net/manual/en/function.fgetcsv.php

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?> 

それでもPHPから直接XLSをロードしたい場合は、それが可能です(ただし、信頼性は高いです)...すばやく検索すると、http: //sourceforge.net/projects/phpexcelreader/が役立ちます。

于 2010-01-14T19:34:54.140 に答える
8

かなり可能。ExcelファイルをCSVファイルとして保存し、fgetcsv()を使用してそのファイルをPHPに読み込むことができます。 fgetcsv()データを配列に解析します。配列からSQLクエリを作成して、データベースに配置できます。

LOAD DATA INFILEデータベースに配置するだけの場合は、PHPスクリプトの必要性を完全に回避し、代わりにCSVファイルでMySQLの構文を使用できる可能性があります。

LOAD DATA LOCAL INFILE '/importfile.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(field1, filed2, field3);
于 2010-01-14T19:36:51.147 に答える
0

最善の策は、ExcelからCSV(コンマ区切り値)ファイルにエクスポートすることです。これらのファイルは、解析とロードが簡単です。XLSファイルから直接読み取っている場合、その方法がわかりません。Excelデータファイルを読み取ることができるPHP用のライブラリがあるかどうかを確認することをお勧めします。

于 2010-01-14T19:34:17.033 に答える
0

これは、Excel スプレッドシートを直接読み書きする方法に関するチュートリアルです (CSV にエクスポートする必要はありません) 必要なパッケージは、SourceForge および PEAR から入手できます (記事を参照)。

于 2010-01-14T19:42:18.607 に答える
-1
<?
 i$db = mysql_connect(“localhost”, “root”, “”) or die(“Could not connect.”);

if(!$db)

die(“no db”);

if(!mysql_select_db(“test”,$db))

die(“No database selected.”);

if(isset($_POST['submit']))

{

$filename=$_POST['filename'];

$handle = fopen(“$filename”, “r”);

while (($data = fgetcsv($handle, 1000, “,”)) !== FALSE)

{

$import=”INSERT into sample(name,email) values(‘$data[0]‘,’$data[1]‘)”;

mysql_query($import) or die(mysql_error());

}

fclose($handle);

print “Import done”;

}

else

{

print “&lt;form action=’import.php’ method=’post’&gt;”;

print “Type file name to import:<br>”;

print “&lt;input type=’text’ name=’filename’ size=’20′&gt;<br>”;

print “&lt;input type=’submit’ name=’submit’ value=’submit’&gt;</form>”;

}
 ?>

ソース

于 2011-01-21T11:18:38.143 に答える