PHPspreadsheet:如何以阅读模式打开文件?
PHPspreadsheet: How to to open a file in reading mode?
我不想在文件或任何东西上设置密码,我只想以阅读模式打开文件,如果用户想编辑任何东西,他必须点击黄色上面写着 "enable editing"
的横幅
我试过 mark's answer 一行一行,没用
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword('secret');
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
如果想要永久禁用编辑,这些选项非常有用,我想说的是显示警告,这是您在尝试编辑 excel 文件时看到的标准警告。
我错误地解决了这个问题,我没有解释为什么我的问题得到解决,我不打算解决它,我正在修复 excel 文件的下载方式并解决了问题.
以前,我习惯于在Javascript中打开一个新标签,生成excel并下载它,我不喜欢那样,因为如果文件是空的怎么办?我想要一种在下载文件之前从 javascript 检查文件是否为空的方法。
所以我这样做了
fetch(url)
.then(resp => resp.blob())
.then(file => {
if (file.size > 0) {
const url = window.URL.createObjectURL(file);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'filename.xlsx';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
} else {
$('#banner').html('<div class="alert alert-warning" role="alert">This provider does not seem to have any data during the selected dates, if you believe there is an issue, please contact the developers</div>');
}
})
.catch(() => $('#banner').html('<div class="alert alert-warning" role="alert">This provider does not seem to have any data during the selected dates, if you believe there is an issue, please contact the developers</div>'));
出于某种原因,从 Javascript 获取文件并重命名然后下载它似乎会使 excel 在受保护的视图中打开文件。
我不想在文件或任何东西上设置密码,我只想以阅读模式打开文件,如果用户想编辑任何东西,他必须点击黄色上面写着 "enable editing"
的横幅我试过 mark's answer 一行一行,没用
$objPHPExcel->getSecurity()->setLockWindows(true);
$objPHPExcel->getSecurity()->setLockStructure(true);
$objPHPExcel->getSecurity()->setWorkbookPassword('secret');
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
如果想要永久禁用编辑,这些选项非常有用,我想说的是显示警告,这是您在尝试编辑 excel 文件时看到的标准警告。
我错误地解决了这个问题,我没有解释为什么我的问题得到解决,我不打算解决它,我正在修复 excel 文件的下载方式并解决了问题.
以前,我习惯于在Javascript中打开一个新标签,生成excel并下载它,我不喜欢那样,因为如果文件是空的怎么办?我想要一种在下载文件之前从 javascript 检查文件是否为空的方法。
所以我这样做了
fetch(url)
.then(resp => resp.blob())
.then(file => {
if (file.size > 0) {
const url = window.URL.createObjectURL(file);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'filename.xlsx';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
} else {
$('#banner').html('<div class="alert alert-warning" role="alert">This provider does not seem to have any data during the selected dates, if you believe there is an issue, please contact the developers</div>');
}
})
.catch(() => $('#banner').html('<div class="alert alert-warning" role="alert">This provider does not seem to have any data during the selected dates, if you believe there is an issue, please contact the developers</div>'));
出于某种原因,从 Javascript 获取文件并重命名然后下载它似乎会使 excel 在受保护的视图中打开文件。