PHP将Excel导入数据库(xls和xlsx)

x33g5p2x  于 2022-12-17  发布在  PHP
关注(0)|答案(6)|浏览(218)

我试图搜索一些插件导入Excel文件到MySQL数据库,其中之一是http://code.google.com/p/php-excel-reader/
这个工具非常强大,可以将整个excel内容显示为html格式。
不过,我想我只需要读取Excel文件并将内容提取出来,例如提取到一个数组中,然后编写一个SQL语句输入到数据库中即可。
有没有好的代码和包裹?谢谢!

khbbv19g

khbbv19g1#

这是最好的插件与适当的文档和例子

**优点:**你可以在它的discussion forum中寻求帮助,你会在一天之内得到作者的回应,真的很令人印象深刻。

qeeaahzv

qeeaahzv2#

有时我需要导入大的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

xxslljrj

xxslljrj3#

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

load data local infile 'FILE.CSV' into table TABLENAME fields terminated by ',' enclosed by '"' lines terminated by '\n' (FIELD1,FIELD2,FIELD3)
uplii1fm

uplii1fm4#

如果将excel文件保存为CSV文件,则可以使用PHPMyAdmin等工具将其导入mysql数据库
我不知道这是否会帮助您的情况下,但csv文件无论是手动或编程将更容易解析到一个数据库比excel文件,我会认为。
编辑:不过,我建议看看其他答案,而不是我的,因为@diEcho的答案似乎更合适。

qcuzuvrc

qcuzuvrc5#

我写了一个继承类:

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

?>
avwztpqn

avwztpqn6#

您可以使用PHPOFFICE作为“diEcho”表示。然后使用bin2hex()函数将数据以BLOB数据类型插入数据库(SQL SERVER或MySQL)。
bin2hex()函数帮了我很大的忙。

相关问题