我试图寻找一些插件来导入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);
}
?>
https://github.com/nuovo/spreadsheet-reader
如果你可以转换.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文件,那么你可以使用工具将其导入到一个MySQL数据库等的phpMyAdmin
林不知道这是否会在您的情况有所帮助,但一个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()); ?>