我尝试搜索一些插件,用于将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);
}
?>
load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
我编写了一个继承类:
<?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());
?>
你可以像 "diEcho" 所说的那样使用 PHPOFFICE
。然后使用 bin2hex()
函数将数据插入到数据库(SQL SERVER 或 MySQL)作为 BLOB 数据类型。
bin2hex()
函数对我帮助很大。