【问题标题】:How to import excel file into mysql database uding php?如何使用php将excel文件导入mysql数据库?
【发布时间】:2014-04-10 14:40:14
【问题描述】:

我想将用户数据上传到 mysql 数据库。为此,我想使用 php 将 excel 数据导入 mysql 数据库。我已经写了代码。但我面临一个错误。我提供我的代码以供参考。我的代码如下。

include 'config.php'; 
require_once 'Excel/reader.php';
$allowedExts = array("xls","xlsx");
$temp = explode(".", $_FILES["file"]["name"]);


if (($_FILES["file"]["size"] < 20000)&& (in_array($extension, $allowedExts)))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Error: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    $filename=$_FILES["file"]["name"] ;
    $filetype=$_FILES["file"]["type"] ;
    $filesize=$_FILES["file"]["size"] ;
    $filetemp=$_FILES["file"]["tmp_name"];

         //////////////////////////   
            $row=0;
        $handle = fopen($filetemp, "r");

        $data = new Spreadsheet_Excel_Reader();
                $data->read($filetemp);

我的代码从这一行停止执行:

$data = new Spreadsheet_Excel_Reader();

我的屏幕上出现了这个错误: php28E.tmp 不可读。

请帮助我解决这个问题。

【问题讨论】:

  • 文件实际上是 BIFF 或 OfficeOpenXML 格式的 Excel 文件,还是扩展名为 xls 的 CSV 文件?
  • 您在上面的行中打开文件是否会阻止 Spreadsheet_Excel_Reader 读取文件本身?你为什么要打开它?
  • 如果你移动你上传的文件并给它一个xls扩展名,那么Spreadsheet_Excel_Reader真的可以读取文件吗?
  • @Mark Ba​​ker 我需要导入的文件是纯 Excel 文件,而不是存储在 Excel 中的 CSV 文件。

标签: php mysql excel


【解决方案1】:

您可以改用 phpexcel,它可以完美运行,并且还支持所有类型的电子表格格式,并且有据可查。 在PhpExcel Home 下载。 google上有很多提示和教程。

此代码适用于我:

<?php
$newPath = __DIR__.'/'.basename($_FILES['filepath']['tmp_name']);
move_uploaded_file($_FILES['filepath']['tmp_name'], $newPath);
$objPHPExcel = PHPExcel_IOFactory::load($newPath);
............................

【讨论】:

  • 对不起,您的问题是关于上传文件...但我认为 PhpExcel 是管理 excel 文件的更好解决方案...
  • 谁提出了错误? PHP 或您的 excel 库,也许您的上传代码没问题,问题是您的 excel 库无法正确读取 excel 格式或您的 apache 服务器需要文件权限...
  • 是的,是的,没错。我的问题是 excel 库。
  • 能否提供使用php将excel导入mysql的教程链接。请非常紧急。
【解决方案2】:

PHP 手册说 (http://www.php.net/manual/en/features.file-upload.post-method.php):

默认情况下,文件将存储在服务器的默认临时目录中,除非在 php.ini 中使用 upload_tmp_dir 指令指定了另一个位置。

[...]

无论逻辑如何,您都应该从临时目录中删除文件或将其移至其他位置。

[...]

您应该使用move_uploaded_file() 移动上传的文件,然后再使用它。

【讨论】:

    猜你喜欢
    • 2014-03-24
    • 2014-07-15
    • 2010-11-21
    • 2013-04-26
    • 1970-01-01
    • 2014-04-11
    • 2022-07-03
    • 1970-01-01
    相关资源
    最近更新 更多