2010-08-16 3 views
3

vb.net에서 데이터를 내보내고 Excel에 표시 할 때 맨 앞의 0이 삭제됩니다. 선행 제로가 떨어지는 것을 어떻게 피할 수 있습니까? 작은 따옴표를 추가하는 방법을 읽었지 만 Excel 시트 열을 추악하게 만듭니다. 또한 우편 번호 필드에 작은 따옴표가 있으면 불평 할 것입니다. vb.net 코드Excel에 표시 될 때 우편 번호가 0으로 시작됩니다. vb.net에서 XML로 엑스포트 변환 XSLT에서 XSLT로 변환

Response.AddHeader("content-disposition", attachment) 
     Response.ContentType = "application/vnd.ms-excel" 
     Response.Charset = "" 

저장 프로 시저 출력 XML과는 엑셀에 표시되기 전에

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <HTML> 
     <HEAD> 
     <STYLE type="text/css"> TABLE{table-layout: automatic; width:100%} .tblHeader{background-color:RGB(192,192,192);font-weight:bold} .row1{background-color:RGB(204,204,255)} .row2{background-color:RGB(153,204,255)} </STYLE> 
     </HEAD> 
     <BODY> 
     <TABLE border="1"> 

      <THEAD> 
      <tr class="tblHeader"> 
       <xsl:for-each select="*/*[1]/*"> 
       <td> 
        <xsl:value-of select="."/> 
       </td> 
       </xsl:for-each> 
      </tr> 
      </THEAD> 

      <TBODY> 
      <xsl:for-each select="ClientArray/Client"> 
       <TR> 

       <xsl:for-each select="*"> 
        <TD> 
        <xsl:value-of select="."/> 
        </TD> 
       </xsl:for-each> 

       </TR> 
      </xsl:for-each> 

      </TBODY> 
     </TABLE> 
     </BODY> 
    </HTML> 

    </xsl:template> 
</xsl:stylesheet> 

작은 따옴표를 추가하거나 조작 이외의 솔루션을 도와주세요 XSLT로 변환 (일반/숫자) 등등과 시트를 엑셀. 나는 제대로 표시를 얻으려면 엑셀에 대한 변경을 사용자가 원하지 않는다. 엑셀이 웹 페이지에서 표시 될 때 모든 것이 올바른 형식으로 설정되어야한다. 또한 우리는 클라이언트 엑셀 소프트웨어를 제어 할 수 없습니다.

+1

숫자 필드이므로 Excel에서 숫자 0을 제거합니다. 당신은 그것을 텍스트로 저장해야 할 것입니다.하지만 선두를 사용하는 것 이외에는 어떻게 할 지 모르겠습니다. – ChrisF

+0

글쎄, 우편 번호는 내 데이터베이스의 문자열 필드이며 Excel로 문자열로 내보내집니다. 나는 아직도 궁금해하고있다 – Enggr

+0

http://stackoverflow.com/questions/137359/excel-csv-number-cell-format –

답변

1

엑셀의 셀 번호는 자동으로 선행 0을 제거합니다. 앞에 0을 유지하려면 셀 데이터를 텍스트로 설정해야합니다. [우편 번호에 아포스트로피를 추가하면됩니다.]

Excel Interop을 많이 사용하지 않으므로 셀의 데이터 형식을 텍스트로 설정하는 방법을 정확하게 말할 수는 없지만 문제를 해결할 수있는 방법임을 확신 할 수 있습니다.

+1

잘, 우편 번호는 나의 데이타베이스에있는 끈 분야이고 excel에 끈으로 수출된다. 나는 아직도 궁금해하고있다. 나는 interop을 사용하지 않습니다. 그것의 단지 응답 .contenttype과 interop API를 능가하지는 않습니다. 또한 우리는 클라이언트에서 Excel 인스턴스의 속성을 제어 할 수 없습니다. 제발 도와주세요 – Enggr

1

사용

<TD style="mso-number-format:\@;"> 

에서 보면 그것은 Leading zeros을 보존합니다.

+0

Enggr - 너무 늦었다는 것을 알고, 단지 당신을 업데이 트하고 싶었어요. 위의 코드를 사용해 보셨습니까? –

1

PHP를 통해 Excel로 내보낼 때이 문제가 발생했습니다. 나는 앞에 등호를 붙이고 큰 따옴표를 사용하여 zip을 둘러 쌈으로써 Excel이 선행 제로를 보존하도록 만들었다.

나는 vb.net 모르겠지만, PHP에서 다음과 같이 것이라고 :

echo '="' . $the_zip_code . '"'; 
-2

이동 작업중인 셀에. 마우스 오른쪽 버튼을 클릭하고 형식 셀을 클릭 한 다음 테스트하십시오. 숫자 앞에 0을 입력하면 그대로 남습니다.

+1

사실 그것은 그렇지 않을 것이고 이것은 질문을 다루지 않습니다. –