2012-02-10 17 views
2

我会给出一个包含许多记录(超过1000条记录)的Excel工作表。我如何自动化EXCEL表单,Mysql和XML交互

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

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

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

回答

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/

0

使用Perl,你可以使用:

的Excel ::读卡器 一个MySQL模块 和XML作家

我没有指定哪些模块,因为你的里程可能会有所不同。 这是Perl非常适合的类型。当然,你可以用PHP或任何其他语言做到这一点,但嘿,它被称为实用提取和报告语言,(病理折衷垃圾列表是另一个:))

0

您可以试试Automation Anywhere。它不需要编程或脚本,如果这是你想要的方式。 还有免费试用。 -Tom