Extra Form
PHP PHP 7.0

필요에 의해 회원정보를 가져와 엑셀로 저장하는 페이지를 만들었습니다.

문제는 웹에서 볼때는 정상인데 엑셀로 저장을 하면 데이터 형식이 변환이 됩니다.

 

회원 확장변수 값에 text  값으로 06-17 와 같은 값이 들어가 있을 경우

 

엑셀로 저장을 하면 06월 17일 과 같이 날짜로 바뀌어 저장이 됩니다.

 

엑셀에서 06월 17일을 클릭하면 2021-06-17 로 되어 있고 해당 쎌은 사용자지정 형식으로 

mm"월" dd"일" 이 값으로 되어 있습니다.

 

등록된 값이  97-116 이런형태는 그대로 출력이 되는데(엑셀에서 형식이 일반으로 되어 있음) , 월일 형태는 저런식으로 변경이 되어 저장이되어서.  문제가 되는 부분의 형식을 사용자지정 형태가 아닌 일반 형태로 변경을 하면 아예 다른값으로 바뀝니다.

 

혹시 이부분을 입력한 그대로 출력 되도록 하는 방법은 없을까요?

 

엑셀저장.png.jpg

 

 

  • profile
    엑셀은 조금이라도 날짜처럼 생긴 것은 모조리 날짜로 인식하는 고약한 습성이 있습니다.
    애초에 저장할 때 해당 셀을 날짜 형식으로 인식하지 않도록 셀 속성을 지정해 줘야 합니다.
    사용하시는 라이브러리에 따라 이 기능을 지원할 수도 있고 안할 수도 있습니다.
    설마 HTML table로 출력하고 계신 건 아니겠죠?
  • profile ?
    html table로 출력했습니다. ㅡㅡ;; 다행히 해결책은 바로 찾았네요..
    검색하다 못찾아서 질문 올렸는데...질문 올리고 나니 검색이 되네요.

    문제가 되는 부분에 스타일을 style=mso-number-format:'\@' 이 값을 지정해 주니 정상적으로 나오네요.

    html 테이블로 출력하면 문제라도 있을까요?
  • ? profile

    HTML 테이블로 만든 엑셀파일을 열 때마다 한 번씩 경고가 뜨는 것, 그리고 셀 내용 중 태그로 오인할 만한 것이 있다면 마치 XSS 공격처럼 셀을 벗어나서 엉뚱한 짓을 할 수 있다는 점ㅡ.ㅡ 외에 특별한 문제는 없습니다.


    마법의 스타일 속성을 찾으셨다니 다행이네요. ㅎㅎ

  • profile ?
    용량도 그렇게 큰것도 아니고 자주 다운받는것도 아니라서 그냥 html table로 출력시켰습니다.
    일하다 보면 참 여러가지 상황들이 많이 발생하네요.