질문/조언질답게시판
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로 출력시켰습니다.
    일하다 보면 참 여러가지 상황들이 많이 발생하네요.