我试图搜索一些插件来将 Excel 文件导入 MySQL 数据库,其中之一是http://code.google.com/p/php-excel-reader/
该工具功能强大,可以将整个 excel 内容显示为 html。
但是,我想我只需要读取Excel文件并提取内容,例如,放入一个数组中,然后编写一个SQL语句进入数据库。
会有好的代码和包吗?谢谢!
我试图搜索一些插件来将 Excel 文件导入 MySQL 数据库,其中之一是http://code.google.com/p/php-excel-reader/
该工具功能强大,可以将整个 excel 内容显示为 html。
但是,我想我只需要读取Excel文件并提取内容,例如,放入一个数组中,然后编写一个SQL语句进入数据库。
会有好的代码和包吗?谢谢!
这是具有适当文档和示例的最佳插件
加分点:你可以在它的论坛上 寻求帮助,你会在一天之内得到作者本人的回复,真的很令人印象深刻。
有时我需要将大型 xlsx 文件导入数据库,所以我使用spreadsheet-reader
它可以读取每行文件。这是一种非常节省内存的导入方式。
<?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());
?>