Excel CSV - 번호 셀 형식
CSV 파일로 보고서를 작성합니다.엑셀로 파일을 열려고 하면 셀의 내용을 바탕으로 데이터 타입을 가정하여 그에 따라 재작성합니다.
예를 들어 CSV 파일에 다음 항목이 포함되어 있는 경우
...,005,...
그러면 엑셀은 5로 표시합니다.이것을 무시하고 005를 표시하는 방법이 있습니까?
사용자가 CSV 파일을 더블클릭하여 열 수 있도록 파일 자체를 조작하고 싶습니다.
Excel 2003을 사용하고 있습니다.
.csv 파일을 열 때 Excel이 적용되는 포맷을 제어하는 쉬운 방법은 없습니다.단, 도움이 될 수 있는 접근법은 다음과 같습니다.
제 취향은 첫 번째 옵션입니다.
옵션 1 – 파일 데이터 변경
.csv 파일의 데이터를 다음과 같이 변경할 수 있습니다...,= "005",...이것은 Excel에 ...,005로 표시됩니다.
Excel은 데이터를 공식으로 유지하지만 열을 복사하고 특수값 붙여넣기를 사용하면 공식이 제거되지만 형식은 유지됩니다.
옵션 2 – 데이터 포맷
단순히 포맷의 문제일 뿐이고 해당 열의 모든 데이터가 세 자리 길이로 되어 있는 경우.그런 다음 Excel에서 데이터를 열고 데이터가 들어 있는 열을 이 사용자 지정 형식 000으로 포맷합니다.
옵션 3 – 파일 확장자를 .dif로 변경합니다(데이터 교환 형식).
파일 확장자를 변경하고 파일 가져오기 마법사를 사용하여 형식을 제어합니다.확장자가 .dif인 파일은 더블클릭하면 Excel에 의해 자동으로 열립니다.
단계별:
- 파일 확장자를 .csv에서 .dif로 변경합니다.
- 파일을 더블 클릭하여 Excel로 엽니다.
- '파일 가져오기 마법사'가 시작됩니다.
- '파일 유형'을 'Delimited'로 설정하고 'Next' 버튼을 클릭합니다.
- 구분 기호에서 '쉼표'를 선택하고 '다음' 버튼을 클릭합니다.
- 표시된 데이터의 각 열을 클릭하고 '열 데이터 형식'을 선택합니다.값이 '005'인 열의 형식은 '텍스트'여야 합니다.
- [완료] 버튼을 클릭하면 지정한 형식으로 Excel에 의해 파일이 열립니다.
CSV, SYLK, SYLK, SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)httpen.wikipedia.org/wiki/(SYLK)
포맷을 훨씬 더 잘 제어할 수 있고, Excel은 내용을 검토하여 필드의 종류를 추측하려고 하지 않습니다.조금 복잡해 보이지만 아주 작은 서브셋만 사용해도 문제가 없습니다.
Office 2010, 버전14 Microsoft Office 2010 Excel 에 합니다.
OP의 "파일 자체에 뭔가를 하고 싶다"는 취지를 잘못 읽었습니다.Import를 직접 포맷하는 솔루션을 원하는 사용자를 위해 계속 보관하고 있습니다.
- 만들기 파일(워크북에서 ->)을 .
- Import Wizard(마법사 -> Import Wizard)를 선택합니다.
- .csv Import 파일을 합니다.
- 'Delimited'는 'Next'를 말합니다.
- 를 제외한 모든 을 선택 ), {None를하고, Next('없음'), Next(다음)를 합니다.
- 데이터 미리 보기 필드에서 텍스트로 사용할 열을 선택합니다.강조 표시되어야 합니다.
- 열 데이터 형식 필드에서 '텍스트'를 선택합니다.
- [어느 쪽인가] 어느 쪽인가?
범위 형식을 텍스트로 지정할 수 있습니다.
또한 숫자 형식과 이를 프로그래밍하는 방법에 대한 좋은 기사도 여기에 있습니다.
실제로 Office 2003부터는 Excel 스프레드시트를 XML 파일로 저장할 수 있게 되었습니다.따라서 XML 파일을 생성할 수 있으며 더블클릭을 하면 Excel로 열립니다.SYLK와 동일한 수준의 제어를 제공하지만 XML 구문이 더 직관적입니다.
셀에 깨지지 않는 공간을 추가하면 도움이 될 수 있습니다. ::"firstvalue";"secondvalue";"005 ";"othervalue"
Excel이 강제로 텍스트로 처리하여 공간이 보이지 않습니다.Windows 에서는, alt+0160 에 힌트를 붙여 공백이 없는 공간을 추가할 수 있습니다.상세한 것에 대하여는, http://en.wikipedia.org/wiki/Non-breaking_space 를 참조해 주세요.
Excel 2010을 사용해 보았다.이것이 여전히 이 문제에 대한 적절한 해결책을 찾는 사람들에게 도움이 되기를 바랍니다.
C#코드에서 CSV 데이터를 내보낼 때 이 문제가 발생하여 선두에 탭 문자 \t를 붙이면 데이터가 Excel에서 숫자가 아닌 텍스트로 해석됩니다(다른 문자 앞부분과 달리 표시되지 않습니다).
="001" 접근 방식이 마음에 들었지만, 이렇게 하면 가져온 CSV 파일에서 형식을 모두 제거하지 않고 내보낸 CSV 데이터를 C# 애플리케이션에 다시 저장할 수 없습니다(따라서 가져오기 데이터만 트리밍합니다).
파일을 Import 할 때 Column Type을 선택할 수 있다고 생각합니다.숫자 대신 텍스트로 만듭니다.하지만 지금 제 앞에 확인할 사본이 없습니다.
csv를 oleDB로 로드하고 모든 추론 데이터 유형을 문자열로 강제 적용
같은 질문을 하고 코드로 대답했어요
기본적으로 csv 파일이 로드되면 oledb 드라이버는 어떤 가정을 해야 하는지 알려줄 수 있습니다.
내 코드는 모든 데이터 유형을 강제로 문자열로 만듭니다.스키마를 쉽게 변경할 수 있습니다.내 목적을 위해 나는 내가 원하는 방식으로 얻기 위해 xslt를 사용했지만, 나는 다양한 파일들을 해석하고 있다.
오래된 질문인 것은 알지만, 여기에 나와 있지 않은 해결책이 있습니다.
csv를 생성할 때 쉼표 뒤에 값을 입력하기 전에 공간을 추가합니다. , 005,.
이것은 어쨌든 Excel 2007에서 자동 날짜 포맷을 방지하기 위해 작동했습니다.
텍스트 Import 마법사 메서드는 Import되는 CSV 파일의 셀 내 줄 바꿈이 있는 경우 작동하지 않습니다.이 메서드는 (적어도 탭으로 구분된 데이터를 사용하여) 다음 시나리오를 처리합니다.
- 새 Excel 파일 생성
- Ctrl+A를 눌러 모든 셀 선택
- 숫자 형식 콤보 상자에서 텍스트를 선택합니다.
- 텍스트 편집기에서 탭으로 구분된 파일 열기
- 모두 선택하고 복사하여 Excel에 붙여넣기
CSV 문서의 숫자 앞에 를 추가합니다.
CSV 파일을 열기 전에 Excel 열의 종류를 제어할 수 없기 때문에 하루 종일 미칠 것 같았습니다.VB를 사용하여 조작할 수 있었습니다.NET 및 Excel 상호 운용:
'Convert .csv file to .txt file.
FileName = ConvertToText(FileName)
Dim ColumnTypes(,) As Integer = New Integer(,) {{1, xlTextFormat}, _
{2, xlTextFormat}, _
{3, xlGeneralFormat}, _
{4, xlGeneralFormat}, _
{5, xlGeneralFormat}, _
{6, xlGeneralFormat}}
'We are using OpenText() in order to specify the column types.
mxlApp.Workbooks.OpenText(FileName, , , Excel.XlTextParsingType.xlDelimited, , , True, , True, , , , ColumnTypes)
mxlWorkBook = mxlApp.ActiveWorkbook
mxlWorkSheet = CType(mxlApp.ActiveSheet, Excel.Worksheet)
Private Function ConvertToText(ByVal FileName As String) As String
'Convert the .csv file to a .txt file.
'If the file is a text file, we can specify the column types.
'Otherwise, the Codes are first converted to numbers, which loses trailing zeros.
Try
Dim MyReader As New StreamReader(FileName)
Dim NewFileName As String = FileName.Replace(".CSV", ".TXT")
Dim MyWriter As New StreamWriter(NewFileName, False)
Dim strLine As String
Do While Not MyReader.EndOfStream
strLine = MyReader.ReadLine
MyWriter.WriteLine(strLine)
Loop
MyReader.Close()
MyReader.Dispose()
MyWriter.Close()
MyWriter.Dispose()
Return NewFileName
Catch ex As Exception
MsgBox(ex.Message)
Return ""
End Try
End Function
CSV를 열면 텍스트 Import 마법사가 나타납니다.마법사의 마지막 단계에서 특정 열을 텍스트로 가져올 수 있으므로 '00' 접두사를 유지할 수 있습니다.그런 다음 원하는 방식으로 셀을 포맷할 수 있습니다.
Excel 2007으로 시험해 봤는데 잘 된 것 같아요.
Excel은 CSV 파일의 마법사를 표시하지 않습니다.이름을 .txt로 바꾸면 다음에 [파일]> [열기]를 Excel로 실행하면 마법사가 표시됩니다.
필드 앞에 작은 따옴표를 붙입니다.Excel은 숫자처럼 보여도 텍스트로 취급합니다.
...,`005,...
EDIT: 이것은 틀렸습니다.아포스트로피 트릭은 Excel에 직접 데이터를 입력할 때만 작동합니다.CSV 파일에서 사용하면 필드에 아포스트로피가 표시됩니다.이러한 정보는 필요 없습니다.
http://support.microsoft.com/kb/214233
언급URL : https://stackoverflow.com/questions/137359/excel-csv-number-cell-format
'programing' 카테고리의 다른 글
| 열에 다른 열의 값이 포함되어 있는지 확인하시겠습니까? (0) | 2023.04.10 |
|---|---|
| LINQ에서 SQL로의 내부 결합 구문은 무엇입니까? (0) | 2023.04.10 |
| git 기본 재배치 실행 취소 (0) | 2023.04.10 |
| JSON을 편집하기 위한 Emacs 모드 (0) | 2023.04.05 |
| WP REST API 요청 여부를 확인하시겠습니까? (0) | 2023.04.05 |