2017-09-05 69 views
0

我不是那麼喜歡數據庫,我有以下情況:我正在使用MySQL,我必須將一些數據導入到Microsoft Excel文件中。如何將模擬到Excel文件的數據導入到MySql數據庫表中?

在此文件中,第一行單元格表示一個表格字段(每個單元格是一個字段),下面的行單元格包含與這些字段相關的值。

在開始時我曾想過要開發一個Java程序來訪問這個Excel文件,解析它並填充我的數據庫。但是這個解決方案是不可持續的,因爲我有很多Excel文件(每個文件都包含特定表的模擬數據)。

我可以直接使用Excel文件(或.csv中的轉換版本)來填充MySql表嗎?存在一個簡單的方法來做到這一點?

如果是這樣,需要考慮哪些預防措施?

+0

有自己的問題,但你可以嘗試https://dev.mysql.com /doc/refman/5.7/en/load-data.html – RiggsFolly

回答

0

MySQL查詢(如果您具備管理員權限)

SELECT * INTO OUTFILE "/mydata.csv" 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY "\n" 
FROM test; 

或簡單的PHP腳本

$result = $db_con->query('SELECT * FROM `some_table`'); 
if (!$result) die('Couldn\'t fetch records'); 
$num_fields = mysql_num_fields($result); 
$headers = array(); 
for ($i = 0; $i < $num_fields; $i++) { 
    $headers[] = mysql_field_name($result , $i); 
} 
$fp = fopen('php://output', 'w'); 
if ($fp && $result) { 
    header('Content-Type: text/csv'); 
    header('Content-Disposition: attachment; filename="export.csv"'); 
    header('Pragma: no-cache'); 
    header('Expires: 0'); 
    fputcsv($fp, $headers); 
    while ($row = $result->fetch_array(MYSQLI_NUM)) { 
     fputcsv($fp, array_values($row)); 
    } 
    die; 
} 
相關問題