我会给出一个包含许多记录(超过1000条记录)的Excel工作表。我如何自动化EXCEL表单,Mysql和XML交互
我必须将这个excel表格的几个字段上传到Mysql中。对于每个记录,将使用Mysql中的自动增量字段分配唯一的ID。
现在我必须为Excel工作表创建一个单独的XML文件以及在Mysql表中分配的唯一标识。
有没有一种方法可以使过程自动化,或者什么是最简单的方法呢?
我会给出一个包含许多记录(超过1000条记录)的Excel工作表。我如何自动化EXCEL表单,Mysql和XML交互
我必须将这个excel表格的几个字段上传到Mysql中。对于每个记录,将使用Mysql中的自动增量字段分配唯一的ID。
现在我必须为Excel工作表创建一个单独的XML文件以及在Mysql表中分配的唯一标识。
有没有一种方法可以使过程自动化,或者什么是最简单的方法呢?
自动化会受到一定的限制,因为您需要验证输入违反你的商业规则。有些字段是必需的,格式可能对一些非常重要,允许的条目可能有一个限制列表。你可以只是推入的数据,但它会打破无效条目。这可能是不可接受的。
如果以下内容有帮助,我可以编写一个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中,但很容易让他们在该格式保存。如果您需要上传格式为Excel,则可能使用http://phpexcel.codeplex.com/。
使用Perl,你可以使用:
的Excel ::读卡器 一个MySQL模块 和XML作家
我没有指定哪些模块,因为你的里程可能会有所不同。 这是Perl非常适合的类型。当然,你可以用PHP或任何其他语言做到这一点,但嘿,它被称为实用提取和报告语言,(病理折衷垃圾列表是另一个:))
您可以试试Automation Anywhere。它不需要编程或脚本,如果这是你想要的方式。 还有免费试用。 -Tom