2012-02-10 21 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