我会给出一张包含很多记录(超过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/