25

我试图搜索一些插件来将 Excel 文件导入 MySQL 数据库,其中之一是http://code.google.com/p/php-excel-reader/

该工具功能强大,可以将整个 excel 内容显示为 html。

但是,我想我只需要读取Excel文件并提取内容,例如,放入一个数组中,然后编写一个SQL语句进入数据库。

会有好的代码和包吗?谢谢!

4

5 回答 5

40

这是具有适当文档和示例的最佳插件

https://github.com/PHPOffice/PHPExcel

加分点:你可以在它的论坛上 寻求帮助,你会在一天之内得到作者本人的回复,真的很令人印象深刻。

于 2012-07-12T08:37:17.670 回答
18

有时我需要将大型 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

于 2015-01-06T12:25:04.703 回答
7

如果您可以在处理之前将 .xls 转换为 .csv,则可以使用以下查询将 csv 导入数据库:

load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
于 2012-07-12T09:03:12.850 回答
4

如果将 excel 文件保存为 CSV 文件,则可以使用 PHPMyAdmin 等工具将其导入 mysql 数据库

我不确定这是否对您的情况有所帮助,但是手动或以编程方式将 csv 文件解析到数据库中要比我想象的 excel 文件容易得多。

编辑:但是,我建议查看其他答案而不是我的答案,因为@diEcho 答案似乎更合适。

于 2012-07-12T08:36:05.283 回答
2

我写了一个继承类:

<?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());

?>

于 2015-02-23T13:42:56.113 回答