[mysql] Excel 파일을 MySQL 데이터베이스로 가져 오는 방법

누구든지 MySQL 데이터베이스로 Microsoft Excel 파일을 가져 오는 방법을 설명 할 수 있습니까?

예를 들어, 내 Excel 표는 다음과 같습니다.

Country   |   Amount   |   Qty
----------------------------------
America   |   93       |   0.60

Greece    |   9377     |   0.80

Australia |   9375     |   0.80



답변

  1. 텍스트 형식으로 내 보냅니다. 가장 쉬운 방법은 탭으로 구분 된 버전이지만 CSV도 작동 할 수 있습니다.

  2. 데이터로드 기능을 사용하십시오. 참조 http://dev.mysql.com/doc/refman/5.1/en/load-data.html를

  3. 탭으로 구분 된 데이터에 대한 좋은 예를 제공하므로 페이지의 절반을 아래로보십시오.

    ‘\’로 이스케이프 된 ‘\ t’로 끝나는 필드

  4. 데이터를 확인하십시오. 때때로 인용 또는 이스케이프에 문제가 발생하여 소스, 가져 오기 명령을 조정해야합니다. 그렇지 않으면 SQL을 통해 사후 처리하는 것이 더 쉬울 수 있습니다.


답변

이를 수행 할 수있는 간단한 온라인 도구 인 sqlizer.io가 있습니다.

sqlizer.com의 스크린 샷

XLSX 파일을 여기에 업로드하고 시트 이름과 셀 범위를 입력하면 CREATE TABLE 문과 여러 INSERT 문을 생성하여 모든 데이터를 MySQL 데이터베이스로 가져옵니다.

(면책 조항 : SQLizer 실행을 도와드립니다)


답변

다음은 추가 소프트웨어에 의존하지 않는 MySQL 데이터베이스로 스프레드 시트 데이터를 가져 오는 또 다른 방법입니다. Excel 테이블을 sales라는 MySQL 데이터베이스의 테이블로 가져 오려고한다고 가정 해 보겠습니다 mydatabase.

  1. 관련 셀 선택 :

    여기에 이미지 설명 입력

  2. Mr. Data Converter에 붙여넣고 출력을 MySQL로 선택합니다.

    여기에 이미지 설명 입력

  3. 생성 된 출력에서 ​​요구 사항에 맞게 테이블 이름 및 열 정의를 변경합니다.

CREATE TABLE sales (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Country VARCHAR(255),
  Amount INT,
  Qty FLOAT
);
INSERT INTO sales
  (Country,Amount,Qty)
VALUES
  ('America',93,0.60),
  ('Greece',9377,0.80),
  ('Australia',9375,0.80);
  1. MySQL Workbench를 사용 중이거나 이미 mysql명령 줄에서 로그인 한 경우 3 단계에서 생성 된 SQL 문을 직접 실행할 수 있습니다. 그렇지 않으면 코드를 텍스트 파일 (예 :)에 붙여넣고 import.sqlUnix 셸에서 다음 명령을 실행합니다.

    mysql mydatabase < import.sql

    SQL 파일에서 가져 오는 다른 방법은 이 Stack Overflow 답변 에서 찾을 수 있습니다 .


답변

실제로 다양한 수준의 복잡성과 성공으로 Excel 파일을 MySQL 데이터베이스로 가져 오는 방법에는 여러 가지가 있습니다.

  1. Excel2MySQL . Excel 데이터를 MySQL로 가져 오는 가장 쉽고 빠른 방법입니다. 모든 버전의 Excel을 지원하며 Office 설치가 필요하지 않습니다.

    Excel2MySQL 스크린 샷

  2. LOAD DATA INFILE :이 인기있는 옵션은 아마도 가장 기술적이며 MySQL 명령 실행에 대한 이해가 필요합니다. 로드하기 전에 테이블을 수동으로 생성하고 적절한 크기의 VARCHAR 필드 유형을 사용해야합니다. 따라서 필드 데이터 유형이 최적화되지 않았습니다. LOAD DATA INFILE은 ‘max_allowed_packet’크기를 초과하는 대용량 파일을 가져 오는 데 문제가 있습니다. 특수 문자 및 외국 유니 코드 문자를 가져 오는 데 문제가 발생하지 않도록 특별한주의가 필요합니다. 다음은 test.csv라는 csv 파일을 가져 오는 데 사용한 최근 예제입니다.

    여기에 이미지 설명 입력

  3. phpMyAdmin : 먼저 데이터베이스를 선택한 다음 가져 오기 탭을 선택합니다. phpMyAdmin은 자동으로 테이블을 생성하고 VARCHAR 필드의 크기를 조정하지만 필드 유형을 최적화하지는 않습니다. phpMyAdmin은 ‘max_allowed_packet’크기를 초과하는 큰 파일을 가져 오는 데 문제가 있습니다.

    여기에 이미지 설명 입력

  4. MySQL for Excel : Oracle의 무료 Excel 추가 기능입니다. 이 옵션은 마법사를 사용하고 큰 파일의 경우 가져 오기가 느리고 버그가 많기 때문에 약간 지루하지만 VARCHAR 데이터가있는 작은 파일에는 좋은 옵션 일 수 있습니다. 필드가 최적화되지 않았습니다.

    여기에 이미지 설명 입력


답변

이 모든 설정이 있는지 확실하지 않지만 저에게는 PHP와 MYSQL을 사용하고 있습니다. 그래서 PHP 클래스 PHPExcel을 사용합니다. xls, xlsx, cvs 등 거의 모든 형식의 파일을 가져 와서 읽고 / 또는 삽입 할 수 있습니다.

그래서 내가하는 일은 Excel을 phpexcel 객체에로드 한 다음 모든 행을 반복하는 것입니다. 내가 원하는 것을 기반으로 간단한 SQL 삽입 명령을 작성하여 Excel 파일의 데이터를 내 테이블에 삽입합니다.

프런트 엔드에서는 약간의 작업이지만 기존 코드 예제 중 일부를 조정하면됩니다. 그러나 가져 오기를 변경하는 데 전화를 걸면 간단하고 빠릅니다.


답변

가장 쉽고 쉬운 방법은 오라클의 무료 앱인 “MySQL for Excel”앱을 사용하는 것입니다. 이 앱은 데이터를 mysql로 ​​내보내고 가져 오는 데 탁월한 플러그인을 추가했습니다. 여기 에서 다운로드 할 수 있습니다.


답변

텍스트 파일을 사용하여 데이터를 가져올 때 따옴표와 Excel에서 숫자 서식을 지정하는 방법에 문제가있었습니다. 예를 들어, 내 Excel 구성에서는 점 대신 소수점 구분 기호로 쉼표를 사용했습니다.

이제 Microsoft Access 2010을 사용 하여 MySql 테이블을 연결된 테이블로 엽니 다. Excel에서 Access로 셀을 복사하여 붙여 넣을 수 있습니다.

이렇게하려면 먼저 MySql ODBC 드라이버를 설치하고 ODBC 연결을 만듭니다 . 그런 다음 액세스의 “외부 데이터”탭에서 “ODBC 데이터베이스”대화 상자를 열고 ODBC 연결을 사용하여 테이블에 연결합니다.

MySql Workbench를 사용하면 Excel 데이터를 복사 하여 MySql Workbench 의 결과 그리드에 붙여 넣을 수도 있습니다. 이 답변에 자세한 지침 을 제공했습니다 .