문제

테이블을 스프레드 시트로 출력하는 간단한 웹 기반 PHP 응용 프로그램을 사용하고 있습니다.

header("Content-Disposition: attachment; filename=" . $filename . ".xls");
header("Content-Type: application/vnd.ms-excel");

//inserts tab delimited text

그러나 다운로드 된 스프레드 시트가 읽기 전용 파일로 열리고 로컬로 저장되어야하며 (Windows의 Excel에서) 유형을 XLS (HTML에서)로 변경해야합니다. 파일 유형의 속성을 올바르게 설정하여 간단한 저장을 수행하면 FileType을 수정할 필요가 없습니까?

파일이 보안의 본질적으로 읽기 전용으로 다운로드 되었습니까? 아니면 정상이 아닌가?

또한 Excel 또는 OpenOffice (Linux)에서 스프레드 시트를 열 때 생성 된 자동 경계가 마음에 들지 않습니다. 나는 국경 형식이 없다는 것을 선호합니다. 파일에 추가 형식을 지정하지 않거나 해당 응용 프로그램에 내장 된 방법이 있습니까?

도움이 되었습니까?

해결책

어떤 버전의 Excel에 대해 이야기하고 있는지 알지 못하므로 2007 또는 새로운 버전을 사용하고 있다고 가정 해 봅시다.

확장 변경 문제는 아마도 "라는 사무실 기능에 따라 다릅니다.확장 경화"; 내가 아는 한, 유일한 솔루션은 실제 Excel 파일을 생성하는 것입니다 (예 : 사용하여 phpexcel 클래스 세트), HTML 파일이 아닙니다.

다운로드 된 파일은 보안상의 이유로 읽기 전용입니다.보호 된 견해":

인터넷 및 잠재적으로 안전하지 않은 다른 위치의 파일에는 바이러스, 벌레 또는 기타 종류의 맬웨어가 포함되어있어 컴퓨터에 해를 끼칠 수 있습니다. 컴퓨터를 보호하기 위해 잠재적으로 안전하지 않은 위치의 파일은 보호 관점에서 열립니다. 보호 관찰을 사용하면 파일을 읽고 발생할 수있는 위험을 줄이면 내용을 검사 할 수 있습니다.

마지막으로, 경계 및 서식에 대한 단어 : 이전 Excel 2000 버전을 사용하면 HTML 코드의 헤더 섹션에 일부 XML 태그를 추가하여 출력을 포맷 할 수 있습니다. "보기"Microsoft Office HTML 및 XML 참조"자세한 내용과 예를 위해서는 매우 쓸모 없다는 점을 명심하십시오. 따라서이 기술이 여전히 최근의 Excel 버전과 함께 작동한다고 생각하지 않습니다.

생성 된 OUPUT를 더 많이 제어하려면 스프레드 시트 파일을 만들기 위해 간단한 HTML을 사용해서는 안됩니다.

이 게시물 Excel 파일을 작성하기 위해 Phpexcel에 대한 몇 가지 대안을 찾을 수도 있습니다.

다른 팁

Afaik은 최소한 Windows에서 사용자가 링크를 따를 때 브라우저에서 표시된 프롬프트로 사용자가 수행하는 일에 따라 다릅니다.

사용자가 파일을 저장하기로 선택하면 읽기 전용이 아닙니다. 사용자가 열기로 선택하면 파일이 임시 디렉토리에 저장되고 브라우저가 닫히면 브라우저를 제거 할 수 있습니다. 이 메커니즘이 어떻게 작동하는지 잘 모르겠지만 파일을 읽는 곳이 있다고 가정합니다.

로컬로 저장하려면 속성을 설정할 수 있습니다. content-description:

header('Content-Description: File Transfer');   
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=" . $filename . ".xls");    

편집하다

탭이 구분 된 텍스트와 속성을 인쇄하는 경우 content-dispositionXLS 또는 CSV와 마찬가지로 Excel 응용 프로그램 (또는 Gnumeric 또는 OpenOffice와 같은 다른 프로그램)은 XLS 또는 CSV와 같이 인식합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top