我會給出一個包含許多記錄(超過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