문제

누구든지 일어날을 알고 있는 경우에는 토큰을 추가할 수 있습니다 내 csv 특정 필드 그렇게 능가하려고 하지 않으로 변환하니까?

내가 하려고 쓰기.csv 파일에서 내 응용 프로그램 중 하나의 값이 일어나 보이 충분한 같은 날짜에는 Excel 자동으로 변환을 그것은 텍스트에서 날짜.고 내 모든 텍스트 필드(을 포함하여 하나처럼 보이는 날짜)이내에 쌍따옴표,하지만 그 효과가 없습니다.

도움이 되었습니까?

해결책

이중 인용문 전에 '='를 넣으면 원하는 것을 달성 할 수 있습니다. 데이터가 텍스트가되도록 강요합니다.

예를 들어. = "2008-10-03", = "더 많은 텍스트"

편집 (다른 게시물에 따라): 때문에 Excel 2007 Jeffiekins가 언급했습니다 하나는 사용해야합니다 Andrew가 제안한 해결책: "=""2008-10-03"""

다른 팁

나는 이것이 오래된 질문이라는 것을 알고 있지만 문제는 곧 사라지지 않습니다. CSV 파일은 대부분의 프로그래밍 언어에서 쉽게 생성 할 수 있으며, 일반 텍스트 편집기와 유비쿼터스가있는 크런치에서는 작고 인간이 읽을 수 있습니다.

문제는 날짜 텍스트 필드에서는 있지만 숫자가 무엇이든 또한 텍스트에서 숫자로 변환됩니다. 이것이 문제가되는 몇 가지 예 :

  • 지퍼/우편 코드
  • 전화 번호
  • 정부 ID 번호

때때로 ~할 수 있다 하나 이상의 0 (0)으로 시작하여 숫자로 변환 될 때 버려집니다. 또는 값에는 수학 연산자와 혼동 될 수있는 문자가 포함되어 있습니다 (날짜 : /, -).

앞에서 언급했듯이 "Perfending ="솔루션을 생각할 수있는 두 가지 경우 이상적이지 않을 수도 있습니다 ~이다

  • 파일이 MS Excel 이외의 프로그램으로 가져올 수있는 경우 (MS Word의 메일 병합 기능이 떠 오릅니다),
  • 인간의 읽기가 중요한 곳.

이 문제를 해결하기 위해 내 해킹

한 사람이 값이 아닌 비 및/또는 비 날짜 캐릭터를 추가하면 값이 텍스트로 인식되고 변환되지 않습니다. 비 인쇄 캐릭터는 표시된 값을 변경하지 않기 때문에 양호합니다. 그러나 평범한 오래된 공간 문자 ( s, ascii 32)는 Excel에 의해 잘려지면 값이 여전히 변환되므로 이것에 대해 효과가 없습니다. 하지만 잘 작동하는 다양한 인쇄 및 비 인쇄 공간 문자가 있습니다. 제일 쉬운 그러나 간단한 탭 문자 ( t, ASCII 9)를 추가 (추가)하십시오.

이 접근법의 이점 :

  • 키보드 또는 기억하기 쉬운 ASCII 코드 (9)에서 사용할 수 있습니다.
  • 수입을 귀찮게하지 않습니다.
  • 보통 메일 병합 결과를 방해하지 않습니다 (템플릿 레이아웃에 따라 다르지만 일반적으로 라인 끝에 넓은 공간이 추가됩니다). (그러나 이것이 문제라면 다른 문자를보십시오.
  • 메모장 (등)에서 CSV를 볼 때 큰 방해가되지 않습니다.
  • Excel (또는 메모장 등)에서 찾기/교체하여 제거 할 수 있습니다.
  • 당신은 할 필요가 없습니다 수입 CSV이지만 간단히 두 번 클릭 할 수 있습니다 열려 있는 Excel의 CSV.

탭을 사용하고 싶지 않은 이유가 있으면 유니 코드 테이블을 찾으십시오.

또 다른 옵션

새로운 MS Excel 버전으로 특정 형식을 가져 오는 XML 파일을 생성하는 것일 수 있으며 .xls 형식과 비슷한 더 많은 옵션을 허용하지만 이에 대한 경험이 없습니다.

따라서 다양한 옵션이 있습니다. 요구 사항/응용 프로그램에 따라 다른 사람보다 낫습니다.


덧셈

MS Excel의 최신 버전 (2013+)은 더 이상 스프레드 시트 형식으로 CSV를 열지 않습니다. 워크 플로우에서 한 번 더 스피드 볼프가 엑셀을 덜 유용하게 만듭니다. 예를 들어이 stackoverflow를 참조하십시오. Excel 2013 내에 .CSV 파일을 올바르게 표시하는 방법은 무엇입니까?.

Jarod의 솔루션과 Jeffiekins가 제기 한 문제를 해결하면 수정할 수 있습니다.

"May 16, 2011"

에게

"=""May 16, 2011"""

비슷한 문제가 있었고 이것은 CSV 파일 내용을 편집하지 않고도 도움이되는 해결 방법입니다.

".csv"이외의 다른 파일의 이름을 지정할 수있는 유연성이있는 경우 "myfile.txt"또는 "myfile.csv.txt"와 같은 ".txt"extension으로 이름을 지정할 수 있습니다. 그런 다음 Excel에서 열면 (드래그 앤 드롭이 아니라 File-> Open 또는 가장 최근에 사용 된 파일 목록을 사용하여) Excel은 "텍스트 가져 오기 마법사"를 제공합니다.

마법사의 첫 페이지에서 파일 유형에 대해 "구분"를 선택하십시오.

마법사의 두 번째 페이지에서 "Delimiter로서", 또한 값을 인용하여 텍스트 예선을 선택하십시오.

세 번째 페이지에서 모든 열을 개별적으로 선택하고 "일반"대신 "텍스트"유형을 할당하여 데이터가 엉망이되는 것을 막으십시오.

이것이 당신이나 비슷한 문제가있는 사람에게 도움이되기를 바랍니다!

경고 : Excel '07 (적어도) 버그가 있습니다 : 필드의 내용물에 쉼표가 있으면 = "필드, 내용"을 정확하게 구문 분석하지 않고 쉼표 이후에 모든 것을 두드리지 않습니다. 견적 마크에 관계없이 다음 필드.

내가 찾은 유일한 해결 방법은 필드 내용에 쉼표가 포함 된 경우 =를 제거하는 것입니다.

이것은 Excel에서 정확히 "올바른"을 나타내는 데 불가능한 일부 분야가 있음을 의미 할 수 있지만 지금까지 나는 아무도 너무 놀랐다고 믿습니다.

C#의 CSV 파일에 기록 할 문자열을 작성하는 동안 다음과 같은 방식으로 포맷해야했습니다.

"=\"" + myVariable + "\""

Excel 2010에서 새로운 시트를 열어보세요. 데이터 리본에서 "텍스트에서 외부 데이터 가져 오기"를 클릭하십시오. CSV 파일을 선택한 다음 "열기"를 클릭하십시오. "다음 다음"을 클릭합니다. "탭"을 선택 취소하고 "Comma"옆에 확인 표시를 한 다음 "Next"를 클릭하십시오. 첫 번째 열의 어디서나 클릭하십시오. Shift Key를 누른 상태에서 마지막 열을 클릭 할 수있을 때까지 슬라이더를 드래그 한 다음 Shift 키를 해제하십시오. "텍스트"라디오 버튼을 클릭 한 다음 "마무리"를 클릭하십시오.

모든 열은 CSV 파일과 마찬가지로 텍스트로 가져옵니다.

여전히 문제가에서 Microsoft Office2016 릴리스,오히려 불안을 위해 우리의 사람들과 작업하는 유전자의 이름 같은 MARC1,MARCH1,SEPT1etc.솔루션 내가 찾을 것이 가장 실용적인 후 생성".csv"파일에서는 R,다는 것을 열었 공유/엑셀 사용:

  1. CSV 파일을 열고 파일로 텍스트(메모장)
  2. 복사(ctrl+a ctrl+c).
  3. 에 붙여 새로운 엑셀 시트-그것은이 모두 붙여 넣기 하나에서 열 긴 텍스트 문자열입니다.
  4. 선택/를 선택하는 이 열입니다.
  5. 로 이동 데이터-"텍스트를 열...",에서 열린 창이 선택하"로 구분되"(음).을 확인하는"쉼표"라는 표시(표하기 그것은 이미 표시의 분리에 데이터를 열 아래)(다),이 창에서 선택할 수 있습의 열 당신이 원하는 표시로 텍스트(일반적으로)(끝).

HTH

다음은 CSV 파일을 처음에 생성 할 때 여기에서 작업하는 간단한 방법입니다. 값을 약간 변경하여 모든 응용 프로그램에 적합하지 않습니다.

CSV의 모든 값에 공간을 선발하십시오

이 공간은 "1", "2.3"및 "-2.9e4"와 같은 숫자에서 Excel에 의해 제거되지만 "01/10/1993"및 "True"와 같은 부울과 같은 날짜에 남아 있습니다. Excel의 내부 데이터 유형.

또한 읽기에 이중 인용구가 Zapping을 중지하므로 CSV에서 텍스트를 만드는 어리석은 방법은 "3.1415"와 같은 일부 텍스트 인 경우에도 Excel에 의해 변경되지 않은 상태로 남아 있습니다. 즉 (입력 할 것을 보여주기 위해 단일 따옴표를 사용하여) '3.1415 "'. 그런 다음 Excel에서는 이중 인용문으로 둘러싸여 공간에 의해 전제되는 것을 제외하고는 항상 원래 문자열이 있습니다.

(Excel 2003 가정 ...)

텍스트 to-columns를 사용하는 경우 마법사는 3 단계에서 각 열에 대한 데이터 유형을 지시 할 수 있습니다. 미리보기의 열을 클릭하고 잘못 행동 열을 "일반"에서 "텍스트"로 변경하십시오.

이것은 파일 자체 안에 엉망이되지 않고 이것을 달성하는 방법을 아는 유일한 방법입니다. Excel과 같이 평소와 같이, 나는 몇 시간 동안 책상에서 머리를 때리면서 이것을 배웠습니다.

.csv 파일 확장을 .txt로 변경합니다. 이렇게하면 파일이 열렸을 때 파일이 자동으로 전환되는 것이 엑셀이 멈출 수 있습니다. 내가 수행하는 방법은 다음과 같습니다. 빈 워크 시트에 Excel을 열고 빈 시트를 닫은 다음 파일 => 열기를 열고 .txt 확장자로 파일을 선택하십시오. 이로 인해 "텍스트 가져 오기 마법사"를 열도록 탁월합니다. 여기서 파일 해석 방법에 대한 질문을합니다. 먼저 Delimiter (Comma, Tab 등)를 선택한 다음 (중요한 부분은 다음과 같습니다) 열의 세트 열을 선택하고 형식을 선택합니다. 파일의 내용을 정확히 원한다면 "텍스트"를 선택하면 Excel은 구분자 사이의 내용 만 표시됩니다.

2018

나를 위해 일한 유일한 적절한 솔루션 (그리고 또한 CSV를 수정하지 않고).

Excel 2010 :

  1. 새 통합 문서를 만듭니다
  2. 데이터> 텍스트에서> CSV 파일을 선택하십시오
  3. 팝업에서 "Delimited"라디오 버튼을 선택한 다음 "Next>"를 클릭하십시오.
  4. Delimiters Checkboxes : "Comma"만 선택하고 다른 옵션을 선택 취소 한 다음 "Next>"를 클릭하십시오.
  5. "데이터 미리보기"에서 가장 오른쪽으로 스크롤 한 다음 Shift를 누른 다음 마지막 열을 클릭하십시오 (모든 열을 선택합니다). 이제 "열 데이터 형식"열 ""라디오 버튼 "텍스트를 선택한 다음"마무리 "를 클릭하십시오.

Excel Office365 : (클라이언트 버전)

  1. 새 통합 문서를 만듭니다
  2. 텍스트/CSV에서 데이터> CSV 파일 선택
  3. 데이터 유형 감지> 감지하지 마십시오

메모: Excel Office365 (웹 버전), 제가 글을 쓰는 것처럼, 당신은 그렇게 할 수 없습니다.

(Excel 2007 이상)

소스 파일을 편집하지 않고 날짜 형식을 "감지"하지 않도록 Excel을 강제하는 방법

어느 하나:

  • 파일의 이름을 .txt로 바꿉니다
  • 그렇게 할 수 없다면 CSV 파일을 Excel에서 직접 열리는 대신 새 통합 문서를 작성 한 다음
    Data > Get external data > From Text
    CSV를 선택하십시오.

어느 쪽이든, 당신은 가져 오기 옵션이 제공되며, 날짜가 포함 된 각 열을 선택하고 "일반"이 아닌 "text"로 형식으로 Excel을 지시하십시오.

없음의 솔루션을 제공 여기에 좋은 솔루션입니다.수도 있습 작업에 대한 개별 사례,하지만 경우에 당신이 제어에 최종의 표시입니다.내 예제:내 작업을 생산 제품의 목록은 그들이 판매하고 있습니다.이 CSV 형식으로 포함 파트 코드는,그들 중 일부는 함께 시작하 제의,제조업체에 의해 설정하지 않는(아래에 우리의 제어).을 선도하는 제로 당신은 수 있습니다 실제로 경기를 다른 제품입니다.소매 고객이 원하는 목록에서 CSV 형식이기 때문에 뒤 처리 프로그램,는 또한 우리의 제어 및 다른 고객별,그래서 우리는 우리를 변경할 수 없습 형식의 CSV 파일이 있습니다.아 앞에'=',도 추가 탭이 있습니다.의 데이터는 원하는 CSV 파일은 올바른;그것은 경우 고객을 열고 그 파일에서 Excel 문제를 시작합니다.고 많은 고객들이 정말 컴퓨터에 정통한.그들이 단지에 대해 열 및 저장을 이메일 첨부합니다.우리가 생각하고 있는 데이터 제공에는 약간 다른 두 형식:중 하나로 엑셀족(옵션을 사용하여 제안된 위하여 탭을 추가,다른 하나는'마'.하지만 이 될 수있다 희망찬 생각으로 일부는 고객을 이해하지 못할 우리가 왜 그렇게 해야 해요.한편 우리는 계속 유지 하는 이유를 설명하는 그들은 때때로 잘못된 데이터에서의 스프레드시트.마이크로 소프트까지게 적절한 변화가 없습니다 적절한 해결책을 이만큼 한이 없 제어 방법을 통해 최종 사용자 사용하여 파일이 있습니다.

이 같은 문제에 대해 내가 한 일은 각 CSV 값 앞에 다음을 추가하는 것이 었습니다. "=" ""및 각 CSV 값 다음에 하나의 이중 인용문이 Excel에서 파일을 열기 전에 추가했습니다. 예를 들어 다음 값을 선택하십시오.

012345,00198475

Excel에서 열기 전에 다음을 변경해야합니다.

"="""012345","="""00198475"

이렇게하면 모든 셀 값이 Excel의 공식으로 나타나므로 숫자, 날짜 등으로 서식하지 않습니다. 예를 들어, 012345의 값은 다음과 같이 나타납니다.

="012345"

나는 이번 주에 Jus 가이 컨벤션을 발견했는데, 이것은 훌륭한 접근법 인 것처럼 보이지만 어디서나 참조 할 수는 없습니다. 친숙한 사람이 있습니까? 당신은 그것을위한 출처를 인용 할 수 있습니까? 나는 몇 시간과 몇 시간을 보지 않았지만 누군가 가이 접근법을 인식하기를 바라고 있습니다.

예 1 : = ( "012345678905") 표시 012345678905

예 2 : = ( "1954-12-12") 표시 1954-12-12, 아니다 12/12/1954.

엑셀이 아닙니다. Windows는 공식, 데이터를 날짜로 인식하고 자동 수정을 인식합니다. Windows 설정을 변경해야합니다.

"제어판"( -> "클래식 뷰로 전환") -> "지역 및 언어 옵션" -> 탭 "지역 옵션" -> "사용자 정의 ..." -> 탭 "숫자" -> 기호를 변경하십시오. 당신이 원하는 것에 따라.

http://www.pcreview.co.uk/forums/enable-disable-convert-number-date-t3791902.html

예를 들어 고객의 컴퓨터에서 이러한 설정이 변경되지 않으면 컴퓨터에서 작동합니다. 데이터 대신 날짜가 표시됩니다.

안녕하세요 저는 같은 문제가 있습니다.

이 vbscipt를 작성하여 다른 CSV 파일을 작성합니다. 새로운 CSV 파일은 각 필드의 글꼴에 공간이 있으므로 Excel은 텍스트로 이해합니다.

따라서 아래 코드가있는 .vbs 파일 (예 : modify_csv.vbs)이있는 .vbs 파일을 작성하고 저장하고 닫습니다. 끌어서 놓기 vbscript 파일에 대한 원본 파일. 같은 위치에있는 "space_added"가있는 새 파일을 생성합니다.

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing

CSV 파일을 수정하지 않고 다음을 수행 할 수 있습니다.

  1. Excel 형식 셀 옵션을 "텍스트"로 변경합니다.
  2. 그런 다음 "텍스트 가져 오기 마법사"를 사용하여 CSV 셀을 정의합니다.
  3. 가져 오면 해당 데이터를 삭제하십시오
  4. 그런 다음 일반 텍스트로 붙여 넣으십시오

Excel은 자동 날짜 형식을 무시하는 텍스트 형식으로 CSV 셀을 올바르게 형식화하고 분리합니다.

어리석은 일이지만 가져 오기 전에 CSV 데이터를 수정하는 것을 능가합니다. Andy Baird와 Richard는이 방법을 피했지만 몇 가지 중요한 단계를 놓쳤다.

나는 이것이 오래된 스레드라는 것을 안다. 나와 같은 사람들을 위해, PowerShell COM 객체를 통해 Office 2013을 사용하는이 문제가 여전히 opentext 메소드. 문제는이 방법에 많은 주장이 있으며 때로는 상호 배타적 인 주장이 있다는 것입니다. 이 문제를 해결하려면 소개 된 Invoke-NamedParameter 메소드를 사용할 수 있습니다. 이 게시물. 예가 있습니다

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

불행히도 나는이 방법이 셀에 라인 브레이크가 포함되어있을 때 어떻게 든 CSV 구문 분석을 깨뜨린다는 것을 발견했습니다. 이것은 CSV에 의해 지원되지만 Microsofts 구현은 버그가있는 것 같습니다. 또한 그것은 어떻게 든 독일의 특정 숯을 감지하지 못했습니다. 올바른 문화를주는 것은이 행동을 바꾸지 않았습니다. 모든 파일 (CSV 및 스크립트)은 UTF8 인코딩으로 저장됩니다. 먼저 CSV 셀을 셀에 삽입하기 위해 다음 코드를 작성했습니다.

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

그러나 이것은 극도로 느리기 때문에 대안을 찾는 이유입니다. excel을 사용하면 매트릭스로 다양한 셀의 값을 설정할 수 있습니다. 그래서 알고리즘을 사용했습니다 이 블로그 멀티 래 레이에서 CSV를 변환합니다.

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

CSV를 Excel로 변환 해야하는 것처럼 위의 코드를 사용할 수 있습니다. 하단의 CSV와 구분 기호 문자로가는 경로를 변경하십시오.

필자의 경우, r을 사용하여 생성 된 CSV 파일의 "sept8"은 Excel 2013에 의해 "8-9pp"로 변환되었습니다. XLSX 패키지에서 write.xlsx2 () 함수를 사용하여 XLSX 형식으로 출력 파일을 생성하여 문제가 해결되었습니다. 원치 않는 변환없이 Excel에 의해로드 될 수 있습니다. 따라서 CSV 파일이 제공되면 r에로드하고 write.xlsx2 () 함수를 사용하여 XLSX로 변환 할 수 있습니다.

Google 드라이브를 사용하는 해결 방법 (또는 Mac에있는 경우 번호) :

  1. Excel에서 데이터를 엽니 다
  2. 잘못된 데이터로 열의 형식을 텍스트로 설정합니다 (형식> 셀> 번호> 텍스트)
  3. .CSV를 Google 드라이브에로드하고 Google 시트로 열어
  4. 불쾌한 열을 복사하십시오
  5. 텍스트로 엑셀에 열을 붙여 넣기 (편집> 스페셜> 텍스트를 붙여 넣기)

또는 3 단계의 Mac에있는 경우 숫자로 데이터를 열 수 있습니다.

(Excel 2016 이상, 실제로 나는 이전 버전으로 시도하지 않았습니다)

  1. 새 빈 페이지를 엽니 다
  2. "데이터"탭으로 이동
  3. "Text/CSV에서"클릭하고 CSV 파일을 선택하십시오.
  4. 데이터가 올바른지 미리보기를 확인하십시오.
  5. сase에서 일부 열이 데이트로 변환 된 경우 "편집"을 클릭 한 다음 열 헤드에서 캘린더를 클릭하여 텍스트 유형을 선택하십시오.
  6. "닫기 및로드"를 클릭하십시오.

알겠습니다. Excel 2003 ~ 2007 에서이 작업을 수행하는 간단한 방법을 찾았습니다. 빈 XLS 통합 문서를 엽니 다. 그런 다음 데이터 메뉴로 이동하여 외부 데이터를 가져옵니다. CSV 파일을 선택하십시오. 마법사를 통과 한 다음 "열 데이터 형식"에서 "텍스트"를 강요 해야하는 열을 선택하십시오. 이렇게하면 해당 열을 텍스트 형식으로 가져와 Excel이 특정 셀을 날짜로 취급하려고하지 않습니다.

이 문제는 여전히 Mac Office 2011과 Office 2013에 여전히 존재합니다. 그런 기본적인 것 같습니다.

내 경우에는 반전 된 쉼표 내에서 올바르게 동봉 된 CSV 내에서 "1-2"& "7-12"와 같은 값이 있었는데, 이후에 Excel 내 날짜로 자동 변환됩니다. 또한 43768과 같은 날짜의 숫자 표현. 또한 바코드와 EAN 번호에서 발견 된 많은 숫자를 다시 123E+ 숫자로 다시 변환 할 수 없습니다.

Google 드라이브의 Google 시트가 숫자를 날짜로 변환하지 않는다는 것을 알게되었습니다. 바코드에는 3 자마다 쉼표가 있지만 쉽게 제거됩니다. Mac / Windows CSV를 처리 할 때 특히 CSV를 잘 처리합니다.

언젠가 누군가를 구할 수 있습니다.

가장 쉬운 해결책 나는 오늘 방금 이것을 알아 냈습니다.

  • 단어로 열립니다
  • 모든 하이픈을 대시로 교체하십시오
  • 저장하고 닫습니다
  • Excel에서 열립니다

편집이 완료되면 언제든지 Word로 다시 열어서 EN 대시를 하이픈으로 다시 교체 할 수 있습니다.

테이블을 단어에 붙여 넣습니다. 검색/교체 및 모두 (대시)를 (이중 대시)로 변경하십시오. 엑셀에 복사하여 붙여 넣습니다. 다른 기호 (/) 등에 대해 똑같이 할 수 있습니다. 도움이 되었기를 바랍니다.

나는 이것을 위해 신용 카드 번호는 계속 변환하여 과학적인 표기:내가 끝까지 가져오기 my.csv 로 장입니다.가져오기 옵션이 지금 비활성화 할 수동 형식의 숫자 값이 있습니다.나는 어떤 민감한 열 일반 텍스트와 다운로드 xlsx.

그것은 끔찍한 워크플로,하지만 적어도 나의 값이 왼쪽의 방법에 그들은 해야 합니다.

기본적으로 숫자를 붙여 넣기 전에 출력 범위를 텍스트로 형식화하는이 VBA 매크로를 만들었습니다. Excel이 날짜로 해석하지 않고 8/11, 23/6, 1/3 등과 같은 값을 붙여 넣고 싶을 때 나에게 적합합니다.

Sub PasteAsText()
' Created by Lars-Erik Sørbotten, 2017-09-17
Call CreateSheetBackup

Columns(ActiveCell.Column).NumberFormat = "@"

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject
DataObj.GetFromClipboard

ActiveCell.PasteSpecial

End Sub

나는 이것이 다른 사람들에게도 효과가 있는지 알고 싶어합니다. 이 문제에 대한 솔루션을 잠시 동안 찾고 있었지만 입력 텍스트 앞에 '삽입을 포함하지 않은 빠른 VBA 솔루션을 보지 못했습니다. 이 코드는 데이터를 원래 형식으로 유지합니다.

필드의 시작 부분에 거꾸로 된 쉼표를 넣으면 텍스트로 해석됩니다.

예시:25/12/2008 becomes '25/12/2008

가져올 때 필드 유형을 선택할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top