PHP-只读电子表格文件类型?

PHP-只读电子表格文件类型?,php,formatting,file-type,spreadsheet,readonly,Php,Formatting,File Type,Spreadsheet,Readonly,我使用的是一个简单的基于web的PHP应用程序,它将表格输出为电子表格 header("Content-Disposition: attachment; filename=" . $filename . ".xls"); header("Content-Type: application/vnd.ms-excel"); //inserts tab delimited text 但我发现下载的电子表格以只读文件的形式打开,必须保存在本地,并且(在Windows上的Excel中)类型更改为XLS

我使用的是一个简单的基于web的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上)中打开电子表格时自动创建边框。我希望没有边框格式。文件中是否有方法指定不添加格式,或者这是内置于这些应用程序中的格式?

好吧,至少在Windows上,这取决于用户在浏览链接时对浏览器显示的提示所做的操作


如果用户选择保存该文件,它将不是只读的。如果用户选择打开该文件,则该文件将保存到临时目录中,浏览器可能会在关闭该文件时将其删除。我不知道这个机制是如何工作的,但我假设在某个地方有一个锁,使文件成为只读的。

我不知道你说的是哪个版本的Excel,所以我假设你使用的是2007或更新版本。

扩展更改问题可能取决于名为“”的Office功能;据我所知,唯一的解决方案是生成一个真正的Excel文件(例如使用一组类),而不是HTML文件。

出于安全原因,下载的文件是只读的,因为它们是在所谓的“”中打开的:

来自Internet和其他潜在不安全位置的文件 可能包含病毒、蠕虫或其他种类的恶意软件 你的电脑。为了帮助保护您的计算机,请从这些 在受保护视图中打开可能不安全的位置。利用 在受保护的视图中,您可以在 降低可能发生的风险

最后,关于边框和格式:对于旧的Excel2000版本,只需在HTML代码的标题部分添加一些XML标记,就可以格式化输出;有关更多详细信息和示例,请参见“”,但请记住它已经过时,因此我认为这种技术在较新的Excel版本中仍然不起作用。

如果您希望对生成的输出有更多的控制,则不应使用简单的HTML来创建电子表格文件。


在上,您还可以找到一些替代PHPExcel的方法来编写Excel文件。

如果要在本地保存,您可以设置属性
内容描述

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

如果打印以制表符分隔的文本和属性
内容处置
,如xls或csv, Excel应用程序(或其他程序,如gnumeric或openoffice)像xls或csv一样识别它