【发布时间】:2011-04-19 04:05:27
【问题描述】:
我正在使用 XLS 类从从这里下载的数据库中用 PHP 创建一个电子表格文件: http://www.phpclasses.org/package/6583-PHP-Compose-and-generate-Excel-XLS-spreadsheet-files.html
正在生成的 XLS 文件似乎是只读的。我无法编辑文件。
我需要能够编辑这些文件。甚至 CHMOD 似乎都不起作用。下面是我的代码。
请帮忙,我似乎无法弄清楚。谢谢!
ob_start();
// start the file
xlsBOF();
xlsWriteLabel(0,0,"Order Number");
xlsWriteLabel(0,1,"Month");
xlsWriteLabel(0,2,"Name");
xlsWriteLabel(0,3,"Address");
xlsWriteLabel(0,4,"Address 2");
xlsWriteLabel(0,5,"City");
xlsWriteLabel(0,6,"State");
xlsWriteLabel(0,7,"Zip");
xlsWriteLabel(0,8,"Country");
xlsWriteLabel(0,9,"Email");
$xlsRow = 1;
while(list($id,$fname,$lname,$email,$s_address,$s_address2,$s_city,$s_state,$s_zip,$s_country,$months_shipped)=mysql_fetch_row($result)) {
++$i;
xlsWriteNumber($xlsRow,0,$id);
xlsWriteNumber($xlsRow,1,$months_shipped+1);
xlsWriteLabel($xlsRow,2,"$fname $lname");
xlsWriteLabel($xlsRow,3,"$s_address");
xlsWriteLabel($xlsRow,4,"$s_address2");
xlsWriteLabel($xlsRow,5,"$s_city");
xlsWriteLabel($xlsRow,6,"$s_state");
xlsWriteLabel($xlsRow,7,"$s_zip");
xlsWriteLabel($xlsRow,8,"$s_country");
xlsWriteLabel($xlsRow,9,"$email");
$xlsRow++;
}
xlsEOF();
$filepath="/home/nick/Dropbox/Daily-Shipments/".date("m-d-y")."-Daily-Shipments.xls";
if (file_put_contents($filepath, ob_get_clean())) {
// Permissions for everything
chmod($filepath, 0777);
【问题讨论】:
-
仔细阅读邮件。 Excel 可能会说它已选择以只读方式打开文件作为安全措施,因为它不知道文件来自何处……这与以只读方式创建的文件有很大不同(权限控制由操作系统)。请确认您从 Excel 收到的实际消息。
-
是的,看起来它正在作为受保护的文件打开。我更改了受保护的文件设置,一切似乎都正常。
标签: php excel permissions file-permissions xls