2017-09-05 10 views
0

데이터베이스에 익숙하지 않고 다음과 같은 상황이 있습니다. MySQL을 사용하고 있으며 일부 데이터를 Microsoft Excel 파일로 가져와야합니다.Excel 파일로 조롱 된 데이터를 MySql 데이터베이스 테이블로 가져 오는 방법은 무엇입니까?

이 파일에서 첫 번째 줄 셀은 테이블 필드 (각 셀은 필드)를 나타내며, 아래 행 셀은이 필드와 관련된 값을 포함합니다.

처음에는이 Excel 파일에 액세스하여 구문 분석하고 내 DB를 채우는 Java 프로그램을 개발할 생각이었습니다. 그러나이 솔루션은 많은 Excel 파일 (각 파일에는 특정 테이블에 대한 조롱 된 데이터가 포함되어 있음) 때문에 유지할 수 없습니다.

MySql 테이블을 채우기 위해 Excel 파일 (또는 변환 된 버전 .csv)을 직접 사용할 수 있습니까? 쉽게 할 수있는 방법이 있습니까?

그렇다면 예방 조치는 무엇입니까?

+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; 
}