2013-07-03 5 views
11

PHP로 CSV 파일을 생성 중입니다. 나는 셀 내부에 새로운 라인의 텍스트를 인쇄 할 필요가 (내가 Ctrl 키를 사용하여 Excel에서이 작업을 수행 할 수 있습니다 + 를 입력 또는 Alt 키를 + 를 입력합니다). 그 때문에 나는 '\n', '\r'을 사용해 보았지만 아무런 도움이되지 않았습니다. 이것을 어떻게 할 수 있습니까?CSV 파일 셀에 새 줄 인쇄

나는 csv를 생성하기 위해 yii 확장자 ECSVExport을 사용하고 있습니다.

ID Value 
1 A 
    B 
2 C 
3 E 
    FF 
    G 
4 X 
+0

PHP_EOL을 사용해 보셨습니까? – roptch

답변

11

최종에 대한 따옴표

+0

번호 결과는'핀란드 : 03/07/2013 "입니다. \ n"아일랜드 : 03/07/2013 "\ n"덴마크 : 03/07/2013' – Khaleel

+2

그는 간단한 따옴표 대신 전체 문자열을 큰 따옴표로 묶어야했습니다. . – roptch

14

("에 싸여) 셀 값 내부에 사용 "\n""\r\n" 안에이

"\n" 

을 시도해보십시오

은이 같은 출력이 원하는 -of-record 마커. 휴대 항목이 여러 줄을 포함하는 경우

$fh = fopen('test3.csv', 'w+'); 
fwrite($fh, "sep=\t" . "\r\n"); 
fputcsv($fh, array('A', 'B', 'C'), "\t"); 
fputcsv($fh, array('D', "E\nF\nG", 'H'), "\t"); 
fclose($fh); 
( fputcsv() 사용), 당신은 "

$fh = fopen('test1.csv', 'w+'); 
fwrite($fh, "sep=\t" . "\r\n"); 
fwrite($fh, 'A' ."\t" . 'B' . "\t" . 'C' . "\r\n"); 
fwrite($fh, 'D' ."\t" . "\"E\nF\nG\"" . "\t" . 'H' . "\r\n"); 
fclose($fh); 

로 묶어야합니다 또는

$varA = 'A'; 
$varB = 'B'; 
$varC = 'C'; 
$varD = 'D'; 
$varE = 'E'; 
$varF = 'F'; 
$varG = 'G'; 
$varH = 'H'; 
$fh = fopen('test2.csv', 'w+'); 
fwrite($fh, "sep=\t"."\r\n"); 
fwrite($fh, $varA . "\t" . $varB . "\t" . $varC . "\r\n"); 
fwrite($fh, $varD . "\t" . "\"$varE\n$varF\n$varG\"" . "\t" . $varH . "\r\n"); 
fclose($fh); 

또는을 (변수 작업)

또는 (fputcsv()을 사용하고 변수로 작업)

$varA = 'A'; 
$varB = 'B'; 
$varC = 'C'; 
$varD = 'D'; 
$varE = 'E'; 
$varF = 'F'; 
$varG = 'G'; 
$varH = 'H'; 
$fh = fopen('test4.csv', 'w+'); 
fwrite($fh, "sep=\t" . "\r\n"); 
fputcsv($fh, array($varA, $varB, $varC), "\t"); 
fputcsv($fh, array($varD, "$varE\n$varF\n$varG", $varH), "\t"); 
fclose($fh); 
+0

이 줄 끝 부분에 대한 것이고 Excel에서 "셀 자체 안에"줄 반환이 필요하지 않습니다. –

+0

@Laurence - 실제로 downvoting 전에 작동하는지 확인하려고 했습니까? –

+1

예 같은 문제가 있습니다. 모든 종류의 시도를했습니다. "\ n"셀의 값 내에서 새 라인이 아니라 나를 위해 라인 끝 부분에 새 라인을 추가합니다 (엑셀에서 새 라인을 시작합니다). 따라서 엑셀이나 숫자에서 csv를 열 때 행은 없지만 셀 내 줄 바꿈은 필요하지 않습니다. 어쩌면 내가 Mac에서 Numbers를 사용하는 것처럼 작동하지 않을 수도 있습니다. –