CSV → TSV·XML·YAML 변환기

CSV·TSV를 TSV·XML·YAML로 변환 — 구분자를 자동으로 감지하고, 쉼표·줄바꿈이 든 따옴표 필드도 그대로 유지합니다.

행과 열: 정렬, 건너뛰기, 개수 제한, 열 고르기

CSV를 TSV·XML·YAML로

CSV 또는 TSV 텍스트를 브라우저에서 바로 TSV, XML, YAML로 변환합니다. 스프레드시트 내보내기, 데이터베이스 덤프, API 응답을 붙여넣고 출력 형식을 고르면 결과를 복사하거나 내려받을 수 있습니다. RFC 4180을 따르므로 따옴표 안의 쉼표, 줄바꿈, 따옴표가 행을 깨뜨리지 않으며, 입력 구분자(쉼표, 세미콜론, 탭, 파이프, 캐럿)는 첫 줄만 보고 자동으로 감지되고("이 문자로 시작하는 줄 건너뛰기"를 넣었다면 주석이 아닌 첫 줄), 구분자 메뉴에서 직접 고를 수도 있습니다. 따옴표 문자 메뉴로 작은따옴표로 감싼 파일도 읽습니다.

형식 선택

TSV는 모든 행을 탭으로 다시 구분하고 탭이나 줄바꿈이 든 셀만 다시 따옴표로 감싸 라운드트립이 가능합니다. XML은 각 행을 <rows> 루트 안의 <row> 요소로 감싸고(두 이름은 루트 요소·행 요소 칸에서 바꿀 수 있습니다) 헤더 셀을 유효한 XML 이름으로 정리해 자식 태그로 사용하며 값은 이스케이프합니다. XML 선언으로 시작을 켜면 첫 줄에 <?xml version="1.0" encoding="UTF-8"?>을 붙입니다. YAML은 열 이름을 키로 하는 매핑 시퀀스를 만듭니다. 같은 열 이름이 반복되면 name_2, name_3처럼 이름을 붙여 어느 열도 사라지지 않게 하고, 2024처럼 정수로 된 열 이름은 JavaScript가 그런 키를 다른 키보다 앞에 두기 때문에 각 행의 맨 앞으로 옵니다. 형식마다 "들여쓰기"를 고를 수 있습니다 — XML은 없음까지 골라 한 줄로 만들 수 있고, YAML은 탭을 금지하므로 공백만 씁니다. YAML에는 행마다 한 줄에 쓰는 플로 스타일로 바꾸는 "배치"와, 작은따옴표(기본)·큰따옴표·없음 중에 고르는 "따옴표"도 있습니다. 없음을 고르면 쓰인 그대로 다시 읽히는 숫자와 true/false만 값으로 적고, 007이나 1.50은 문자열로 둡니다. "이 문자로 시작하는 줄 건너뛰기"에 #처럼 표시를 넣으면 주석 줄을 뺍니다. 접힌 "행과 열: 정렬, 건너뛰기, 개수 제한, 열 고르기" 구역에서는 쓰기 전에 표를 다듬습니다 — "정렬 기준 열 번호"로 글자나 숫자 순서로 정렬한 뒤 "건너뛸 행 수"만큼 빼고 "최대 행 수"만큼만 남기며, "남길 열"에는 남길 열을 위치나 범위로 적습니다. 헤더 행은 맨 위에 그대로 두고 정렬·건너뛰기·개수에서 빼며, 행을 다듬는 동안에는 TSV에서도 헤더 체크박스가 나옵니다. 헤더 옵션을 끄면 모든 줄을 데이터로 취급해 XML은 col1, col2 형태의 이름을, YAML은 리스트의 리스트를 출력합니다. 모든 작업은 로컬에서 실행되어 파일이 기기를 떠나지 않습니다.

자주 묻는 질문

구분자 변환기나 CSV to JSON과 무엇이 다른가요?

구분자 변환기는 구분자만 바꾸고 CSV to JSON은 JSON을 만듭니다. 이 도구는 그 사이를 메워 TSV, XML, YAML 세 가지 구조화 형식으로 변환하며, 먼저 RFC 4180으로 파싱해 따옴표 속 쉼표와 줄바꿈을 보존합니다.

YAML 출력에서 숫자가 왜 따옴표로 감싸져 있나요?

셀 값을 문자열 그대로 두기 때문입니다. 007 같은 사번이나 우편번호, 전화번호가 숫자로 재해석되어 앞자리 0이 사라지는 일을 막으려는 것입니다. 그래서 30 같은 값도 age: '30'처럼 따옴표가 붙은 문자열로 적히며, 원래 값이 정확히 보존됩니다. 따옴표를 없음으로 두면 숫자와 true/false를 값으로 적는데(age: 30), 쓰인 그대로 다시 읽힐 때만 값이 되므로 007, 1.50, 긴 ID는 문자열로 남습니다.

XML 요소 이름을 정하거나, 세미콜론·파이프로 구분한 파일을 읽을 수 있나요?

네. XML을 고르면 루트 요소와 행 요소 칸(바꾸기 전에는 rows와 row)으로 감싸는 요소와 각 행의 이름을 정할 수 있습니다. XML 이름으로 쓸 수 없는 이름은 쓸 수 있게 고쳐서 my data는 my_data가 되고, XML 선언으로 시작을 켜면 <?xml …?> 줄이 붙습니다. 구분자 메뉴에서는 자동 감지 대신 쉼표·세미콜론·탭·파이프·캐럿을 고를 수 있고, 따옴표 문자로 작은따옴표로 감싼 파일도 읽습니다.

들여쓰기를 바꾸거나 YAML 행을 한 줄씩 쓸 수 있나요?

됩니다. "들여쓰기"로 XML은 없음(한 줄)까지, YAML은 탭을 금지하므로 공백으로만 간격을 정합니다. YAML의 "배치"는 행마다 한 줄에 쓰는 플로 스타일로 바꿉니다.

변환하기 전에 행을 정렬하거나, 일부를 건너뛰거나, 원하는 열만 남길 수 있나요?

네. “행과 열: 정렬, 건너뛰기, 개수 제한, 열 고르기”를 펼치세요. “정렬 기준 열 번호”로 그 열을 기준으로 글자나 숫자 순서로, 오름차순이든 내림차순이든 정렬하고, “건너뛸 행 수”로 위에서부터 몇 행을 뺀 뒤 “최대 행 수”만큼만 남기며, “남길 열”에는 위치와 범위를 적습니다. 쿼리처럼 이 순서대로 적용되고, 헤더 행은 맨 위에 그대로 남아 정렬·건너뛰기·개수에서 빠집니다. 그래서 행을 다듬는 동안에는 TSV에서도 헤더 체크박스가 나옵니다.