2011-04-22 6 views
1

mysql에서 SELECT INTO OUTFILE 명령을 사용하여 XLS 파일 저장하기

메신저로 SELECT INTO OUTFILE 쿼리를 사용하는

"SELECT * INTO OUTFILE " . "myfile.xls" . " FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' FROM transactions where ppno like '%$cid%' 

임 CSV 대신 XLS 파일을 사용합니다. 거기에 문제가 있습니까? XLS 파일을 Microsoft Excel에서 열려고하면 '파일이 다른 형식으로되어 있습니다. 정말 열리시겠습니까?'라는 메시지가 나타납니다. Plz me

답변

2

예, 실제로 문제가 있습니다. 즉, 은 파일 이름을으로 변경하는 것만으로는 데이터를 자동으로 적절한 데이터 형식으로 변환하기에 충분하지 않습니다. 즉, "다른 이름으로 장미가 감미 롭게 냄새가납니다". Excel에서 실제로 에게 오류 메시지를 표시합니다.

SELECT INTO OUTFILE은 Excel 문서를 지원하지 않습니다. a) CSV로 내보내고 나중에 변환하거나 b)이 내보내기 기능이있는 도구 (예 : phpMyAdmin 또는 Navicat)를 가져와야합니다.

2

파일 확장명을 설정할 수 있습니다. 실제로 xls는 Excel에서 읽으려고하는 이진 OLE 파일입니다. SELECT INTO OUTFILE은 텍스트 파일을 생성하고 CSV 또는 TXT 확장자로 파일을 저장하려고합니다. 이 경우 Excel에서 파일을 올바르게 열 것입니다.

3

Piskvor와 Devart가 말했듯이 파일에 .xls 확장명을 지정해도 사실 Excel 파일이 아닙니다. 생성 된 파일 내용은 여전히 ​​SQL 문과 마찬가지로 탭으로 구분 된 값 파일입니다

FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 

당신은 또한 (예를 들어)는 내보낼 데이터를 포맷 할 수 PHP 스크립트 내에서 실제 Excel 파일을 만들려면

분명이, 다음 라이브러리를 사용할 필요가 있습니다 내 자신의 PHPExcel 또는 this thread에 나열된 다른 하나와 같은.

관련 문제