php - 我如何自动化 EXCEL 工作表、Mysql 和 XML 交互

标签 php mysql xml excel

我会给出一张包含很多记录(超过1000条记录)的Excel表格。

我必须将这个 Excel 工作表的几个字段上传到 Mysql 中。对于每条记录,将使用 Mysql 中的自动增量字段分配唯一的 id。

现在我必须为 Excel 工作表创建一个 XML 文件以及在 Mysql 表中分配的唯一 ID。

有没有一种方法可以使该过程自动化,或者什么是最简单的方法?

最佳答案

自动化会受到一定限制,因为您需要根据业务规则验证输入。有些字段是必需的,格式对某些字段可能很重要,并且允许的条目可能有一个受限列表。您可以只将数据插入,但它会在无效条目时中断。这可能是 Not Acceptable 。

如果以下内容有帮助,我编写了一个 PHP 函数,可以轻松地将分隔上传文件(示例中的制表符)转换为以列名称为键的数组。一旦有了这个,您就可以迭代数据结构来进行验证和插入。对于非常大的数据集,LOAD DATA MySQL 命令的性能会更高。

  function buildUploadArray($File) 
  {
    $handle = fopen($File, "r");
    $fields = fgetcsv($handle, 1000, "\t");

    while($data = fgetcsv($handle, 1000, "\t")) 
    {
      $detail[] = $data;
    }

    $x = 0;
    $y = 0;

    foreach($detail as $i) 
    {
      foreach($fields as $z) 
      {
        $result[$x][trim(strtolower($z))] = trim($i[$y]);
        $y++;
      }
      $y = 0;
      $x++;
    }

    return $result;
  }

这确实意味着您的用户上传制表符分隔的文件而不是 Excel,但他们可以轻松地以该格式保存。您可能可以使用 http://phpexcel.codeplex.com/如果您需要上传格式为Excel。

关于php - 我如何自动化 EXCEL 工作表、Mysql 和 XML 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232610/

相关文章:

PHP将变量传递给我自己的MySQL函数--DB使用变量作为列名

php - Ubuntu 14.04 服务器 : Apache2 issue with phpMyAdmin

java - 使用 xPath 修改 XML 文件

mysql - 连接 2 个有很多结果的表

php - 使主题 wmpl 准备好 wpml-config

c - 如何在 libxml2 中添加由字符串构造的 xml 节点

php - 如何在 PHP 中接收 JSON 对象?

php - Joomla 3 - 如果类别标题包含&符号,则类别链接中断&

mysql - 如何将 varchar 设置为无限长?

mysql - MySQL UPDATE 语句从字符串中删除非数字字符的正确语法是什么