2009-05-24 4 views
10

CSV 파일을 만들고 긴 번호 (내 프로그램의 문자열)를 넣는 C# 프로그램을 만들어야합니다.Excel에서 긴 숫자를 표시하는 방법은 무엇입니까?

1234E + 또는 1234560000000 (숫자의 끝에 0)

가 어떻게 숫자의 서식을 유지 : 문제는 내가 Excel에서이 CSV 파일을 열 때 번호는 다음과 같이 표시한다? 파일을 텍스트 파일로 열면 숫자의 형식이 올바르게 지정됩니다.

미리 감사드립니다.

답변

8

형식 앞에 '(아포스트로피)를 가하고 또는 그것의 수식을 만들어서 문자열로 그 긴 번호 : = 당신은 할 수 없습니다 "1234567890123"

+1

아포스트로피는 Excel에서 볼 수 있지만 공식 트릭은 gr입니다. 먹다. – Chris

0

. Excel은 15 자리의 정밀도로 숫자를 저장합니다. Excel 내에서 계산을 수행 할 필요가 없다면 Text로 저장할 수 있으며 모든 자릿수가 표시됩니다.

0

Excel로 가져올 데이터를 생성 할 때 데이터 표시 방법을 제어하려면 CSV 파일을 생성하지 않습니다. 대신, 셀의 속성이 적절하게 설정된 Excel 파일을 작성합니다. C#에서 파일을 생성하는 컴퓨터에 Excel을 설치하지 않고도 그렇게 할 수있는 라이브러리가 있는지 모르겠지만 살펴볼 내용입니다.

16

다른 사람들이 언급했듯이 데이터를 강제로 문자열로 지정할 수 있습니다. 가장 좋은 방법은 = "1234567890123"입니다. =은 셀을 수식으로 만들고 따옴표로 묶은 값을 Excel 문자열 리터럴로 만듭니다. Excel의 숫자 정밀도 한도를 초과하여 모든 자릿수를 표시하지만 셀은 일반적으로 숫자 계산에 직접 사용할 수 없습니다.

데이터를 숫자로 유지해야하는 경우 가장 좋은 방법은 기본 Excel 파일 (.xls 또는 .xlsx)을 만드는 것입니다. 그것에 대한 다양한 접근법은 this related Stack Overflow question에 대한 해결책에서 찾을 수 있습니다.

천 단위 구분 기호가 있으면 상관없이 사용할 수있는 또 다른 트릭이 있습니다. 이것은 C# 프로그램에 1000 단위 구분 기호를 삽입하고 그 값을 "1,234,567,890,123"으로 묶는 것입니다. 선행 =을 포함하지 마십시오 (문자열로 강제 됨). 이 경우 따옴표는 Excel 문자열 리터럴을 지정하는 것이 아니라 CSV에서 쉼표를 보호하기위한 것입니다.

+0

쉼표 기술은 15 자리의 정밀도로만 작동하는 것처럼 보이고 이후에는 0이됩니다. 적어도 과학 표기법에 있지는 않습니다. – Chris

+0

= "1234564 ..."트릭을위한 엄지 손가락은 훌륭합니다. 나는 그것을 기억해야 할 것이다. – Chris

0

        내 두 센트 :
       는 나는 "데이터"와 "포맷"사이에 차이가 실현 중요하다고 생각합니다. 이 예제에서는 데이터 전용 파일에 두 가지를 모두 저장하려고합니다. 다른 답변에서 알 수 있듯이 데이터의 특성을 변경합니다. CSV 파일은 데이터 전용 파일입니다. 서식 지정을 데이터와 병합하기 위해 여기저기서 할 수 있지만, 내 생각에는 병합하여 데이터를 손상시킵니다. 데이터 형식이 아닌 값 : 예 : "서식 지정"
        포맷 정보를 저장할 수 있어야한다면, 개발할 시간이 있다면 파일 유형으로 전환 할 수 있습니다. 이 문제는 XML 스프레드 시트 솔루션의 좋은 후보가 될 것입니다.이 방법으로 데이터를 지정할 수있을뿐 아니라 형식 및 형식을 선택하여 사용할 수도 있습니다.

관련 문제