我将给出一张包含许多记录(超过1000条记录)的Excel表格。
我必须将这个excel表的几个字段上传到Mysql中。对于每条记录,将使用Mysql中的自动增量字段分配唯一ID。
现在我必须为Excel工作表创建一个XML文件以及在Mysql表中指定的唯一ID。
有没有办法让这个过程自动化,或者最简单的方法是什么?
答案 0 :(得分:2)
自动化将受到一定限制,因为您需要根据业务规则验证输入。某些字段是必需的,格式化对于某些字段可能很重要,并且允许的条目可能具有受约束的列表。你可以只是推送数据,但它会在无效的条目上中断。这可能是不可接受的。
如果以下内容有用,我有一个我编写的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/。
答案 1 :(得分:0)
使用Perl,您可以使用:
的Excel ::读卡器 一个mySQL模块 和XML编写器
我没有指定哪些模块,因为您的里程可能会有所不同。 这是Perl非常适合的那种东西。当然你可以用PHP或任何其他语言来做这个,但是,它叫做实用提取和报告语言,(病态折衷垃圾Lister是另一个:))
答案 2 :(得分:0)
您可以尝试使用Automation Anywhere。它不需要编程或脚本,如果这是你想要的方式。 还有一个免费试用版。 - 汤姆