programing

선행 0 및 쉼표를 모두 포함하는 Excel용 CSV

yellowcard 2023. 5. 5. 08:49
반응형

선행 0 및 쉼표를 모두 포함하는 Excel용 CSV

사용자가 엑셀로 열 수 있도록 CSV 파일을 생성하고 싶습니다.

쉼표 값을 이스케이프하려면 "640,480"으로 쓰면 됩니다.

선행 0을 유지하려면 ="001234"를 사용할 수 있습니다.

그러나 쉼표와 선행 0을 모두 값에 유지하려면 ="001,002"로 쓰는 것이 두 개의 열로 분할됩니다.정확한 데이터를 표현하는 것은 해결책이 아닌 것 같습니다.

001, 002를 엑셀용 CSV로 표현할 수 있는 방법이 있습니까?

Kent Fredric의 답변에는 다음과 같은 해결책이 포함되어 있습니다.

"=""001,002"""

(켄트의 답변에서 유효한 엑셀 솔루션이라는 것이 명확하지 않아 별도의 답변으로 올리기가 번거롭습니다.)

데이터에 String 접두사를 붙입니다.

 "N001,002","N002,003" 

( 접두사가 E가 아닌 한)

위의 표기법(OpenOffice에서 적어도)은 N001,002바이트가 올바르게 저장된 총 2열로 해석됩니다.

CSV 규격에 따옴표 문자열 내에서 허용되는 것으로 나와 있습니다.

또한, 경험에 의한 경고: 전화번호도 반드시 사용해야 합니다.그렇지 않으면 Excel은 전화 번호를 부동 소수점 번호로 해석하여 과학적 표기법으로 저장합니다. :/ , 1.800E10은 정말 좋은 전화 번호가 아닙니다.

OpenOffice에서 이 RawCSV 청크도 예상대로 디코딩됩니다.

  "=""001,002""","=""002,004"""

i:

   $rawdata = '001,002'; 
   $equation = "=\"$rawdata\"";
   $escaped = str_replace('"','""',$equation); 
   $csv_chunk = "\"$escaped\"" ; 

"""001,002"""

저는 "001,002"를 입력한 후 Excel에서 CSV로 저장함으로써 이를 알게 되었습니다.이것이 정확히 원하는 것이 아니라면(따옴표를 원하지 않는 경우) 원하는 것을 찾을 수 있는 좋은 방법일 수 있습니다.

다른 옵션은 탭으로 구분된 텍스트를 사용하는 것입니다.

제 블로그의 독자가 ="001" & CHAR(44) & "002"라는 솔루션을 찾았습니다. 제 컴퓨터에서 작동하는 것 같습니다!

꽤 오래된 스레드지만 값 뒤에 공백을 추가하는 것이 어떻습니까?그런 다음 문자열로 처리되며 선행 0은 제거되지 않습니다.

"001,002".""

이미 아무도 언급하지 않았기 때문에, 이 오래된 게시물에서 언급할 가치가 있다고 생각했습니다.

문자를 하면 평수탭추가는하경우를문자우경▁if▁a는추▁character▁you하가.\t숫자 앞에 MS Excel이 선행 0을 표시합니다.그리고 엑셀 시트에 탭 캐릭터가 나타나지 않습니다.개의 따옴표로 (e. 로둘해말다니입도다인표싸러옴따.)\"\t001,002\")

또한 메모장++에서 더 멋져 보입니다, 그것은 a를 넣는 것과 비교됩니다.\0이러한 숫자 앞에 NULL이라고도 합니다.

Excel 스프레드시트를 자세히 보면 CSV를 사용하여 원하는 작업을 수행할 수 없습니다.

사이트 http://office.microsoft.com/en-us/excel/HP052002731033.aspx 에서는 "셀이 수식 값 대신 수식을 표시하면 수식이 텍스트로 변환됩니다.모든 서식, 그래픽, 개체 및 기타 워크시트 내용이 손실됩니다.유로 기호는 물음표로 변환될 것입니다."

그러나 로드 방법을 변경하여 원하는 결과를 얻을 수 있습니다.다음 웹 페이지를 참조하십시오.Microsoft가 텍스트 파일을 가져옵니다.

중요한 것은 외부 데이터 가져오기-데이터 텍스트 파일 가져오기를 선택하고 다음, 다음으로 이동한 다음 열 데이터 형식에서 "텍스트"를 선택하는 것입니다.이렇게 하면 숫자로 해석되지 않고 서식이 손실되지 않습니다.

저는 CSV를 Excel로 만지작거리고 있었습니다. (CSV를 만들기 위해 PHP를 사용하지만, 이 솔루션은 모든 언어에서 작동하는 것 같습니다. 문자-, 0가 없어지는 것을 하면, 선문자예(+, -는 0)로 합니다.chr(13)이것내 엑셀 이것은 인쇄할 수 없는 문자이며 내 엑셀 오피스 2010 버전에 이상하게 작동합니다.다른 인쇄 불가능한 문자를 시도해 보았지만, 실패했습니다.

그래서 저는 Chirp 인터넷 솔루션을 사용하지만 제 접두사로 조정했습니다.

if (preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
    $str = chr(13)."$str";
}

"Content-Disposition"을 사용하고 HTML 태그를 사용하여 asp에서 excel로 내보낼 경우 "style='mso-number-format:해당 태그에 대해 텍스트 값만 허용하도록 설정하면 선행 0 생략을 피할 수 있습니다. \"전향 슬래시\"가 허용되면 이중 슬래시 "\"를 사용합니다.

현재 OS X의 모든 Excel 버전 또는 Numbers 앱에서 제안된 모든 답변("="blahblah" 및 기타)이 저에게 적용되지 않는 것 같습니다.

제가 만지작거리며 작동하는 유일한 해결책은 문자열의 시작 부분에 이스케이프된 null 문자를 추가하는 것입니다(PHP 또는 C 기반 언어에서 \0).계산 시트를 열 때 소프트웨어가 계산하거나 처리하지 않아도 모든 것이 그대로 처리됩니다.

echo "\0" . $data;

Excel은 내용에 따라 CSV 열에 기본 형식을 사용합니다.따라서 csv에 001이 있으면 excel이 자동으로 1로 전환됩니다.

csv 파일에서 선행 0을 excel로 유지하는 유일한 방법은 csv 파일의 확장자를 .txt로 변경한 다음 excel을 열고 열기를 클릭하고 txt 파일을 선택하면 텍스트 가져오기 마법사가 표시됩니다.csv 형식(쉼표로 구분)을 선택한 다음 형식으로 "텍스트"를 선택하십시오.

이제 이전 CSV 데이터를 다른 데이터로 내보내는 동시에 선행 0을 유지할 수 있습니다.

이는 단계별 변환을 수행할 수 있는 Excel의 Power Query 기능을 사용하면 간단합니다.

원본 파일:

여기에 이미지 설명 입력

사용자 지정 열 추가:

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/308324/csv-for-excel-including-both-leading-zeros-and-commas

반응형