programing

콘솔에서 CSV 생성/열기 - 파일이 잘못된 형식 오류입니다.

powerit 2023. 4. 13. 21:15
반응형

콘솔에서 CSV 생성/열기 - 파일이 잘못된 형식 오류입니다.

콘솔 앱을 사용하여 파일을 콤마로 구분하여 쓰고 있습니다.프로세스를 사용하여 파일을 엽니다.이는 쿼리 결과를 Excel로 덤프하는 빠르고 더러운 방법입니다.

잠시 동안은 정상적으로 동작했지만, 최근에는 "당신이 'blah.csv'를 열려고 하는 파일은 파일 확장자가 지정한 형식과 다릅니다."라는 메시지가 뜨기 시작했습니다.

"예"를 클릭한 후보다 더 많이

Excel은 blah.csv가 SYLK 파일임을 검출했지만 로드할 수 없습니다.파일에 오류가 있거나 SYLK 파일 형식이 아닙니다.[확인]을 클릭하여 다른 형식으로 파일을 엽니다.

[확인] 을 누르면 이 열리고 올바르게 표시됩니다.

웹 세계에서는 콘텐츠 폐기 헤더를 추가하는 솔루션을 볼 수 있지만 프로세스를 사용하여 열고 있기 때문에 해당 수정을 적용할 수 없습니다.

파일을 여는 내 코드:

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filePath;
info.UseShellExecute = true;
Process.Start(info);

Notepad++에서 파일을 열고 모든 문자를 표시하면 CR LF 행이 끝나는 일반 CSV로 표시됩니다.

조사를 해보니 제목줄이 오류를 일으키는 것 같습니다.제목 앞에 빈 줄만 쓰면 오류가 사라집니다.제목은 다음과 같습니다.

heading1,heading2,heading3 CRLF

여기를 봐주세요.http://support.microsoft.com/kb/323626

머리글 행의 첫 번째 두 글자로 ID가 있는 것이 문제인 것 같습니다.내 생각에는 엑셀로부터의 매우 이상한 행동입니다.

CSV는 2글자 ID로 시작합니다.문자를 큰따옴표로 둘러싸면 정상적으로 동작합니다.

(편집) 저도 같은 문제가 있었습니다.똑같은 에러가 발생하고 있었습니다만, 제 경우는 몇 달 동안 자주 사용한 후에 갑자기 발생하고 있었습니다.정말 문제가 ID 열 제목인지 궁금했는데, 마이크로소프트 솔루션은 OP에서 말한 것처럼 "일시적으로 정상적으로 작동"하다가 문제가 된 이유를 설명하지 않았습니다.

시나리오에서 누군가의 이름에 쉼표가 추가된 업스트림 시스템에서 잘못된 데이터가 수신되어 .csv 파일이 무효가 된 것을 발견했습니다.이로 인해 "file is in wrong format error"라는 메시지가 표시되었지만 잘못된 경로로 이동하여 "[filename]은 SYLK 파일이지만 로드할 수 없습니다"라는 메시지가 표시되었습니다.

언젠가 이게 다른 사람에게 도움이 되길 바라야죠.

SYLK file format is not valid 오류는 CSV 파일의 첫 번째 두 문자가 대문자 I와 D일 때 발생합니다.이 문제는 다음 단계로 해결할 수 있습니다.메모장에서 파일을 열고 첫 번째 문자 앞에 아포스트로피(') 키를 누릅니다.파일을 저장하고 MS Excel을 다시 엽니다.

언급URL : https://stackoverflow.com/questions/4286511/generating-opening-csv-from-console-file-is-in-wrong-format-error

반응형