admin管理员组文章数量:1429067
I have this code below. I am taking an existing excel called b1b5.xls and i am putting some values as you can see.. The problem is that i don't know how to assosiate a button that when i click it, the b1b5.xls is been downloaded with my values..
<html>
<head>
</head>
<body>
<center>
<button onclick=" somefunction ?? ">Download!</button>
</center>
</body>
</html>
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = IOFactory::load('b1b5.xls');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('C7', 'Myvalue');
$sheet->setCellValue('C8', 'Myvalue2');
foreach (range('A', 'E') as $col) {
$sheet->getColumnDimension($col)->setAutoSize(true);
}
$filename = 'trapezas_ellados.xlsx';
// Redirect output to a client's web browser (Xlsx)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
?>
I have this code below. I am taking an existing excel called b1b5.xls and i am putting some values as you can see.. The problem is that i don't know how to assosiate a button that when i click it, the b1b5.xls is been downloaded with my values..
<html>
<head>
</head>
<body>
<center>
<button onclick=" somefunction ?? ">Download!</button>
</center>
</body>
</html>
<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = IOFactory::load('b1b5.xls');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('C7', 'Myvalue');
$sheet->setCellValue('C8', 'Myvalue2');
foreach (range('A', 'E') as $col) {
$sheet->getColumnDimension($col)->setAutoSize(true);
}
$filename = 'trapezas_ellados.xlsx';
// Redirect output to a client's web browser (Xlsx)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');
?>
Share
Improve this question
asked Jul 14, 2020 at 16:36
ThunderBoyThunderBoy
4811 gold badge4 silver badges21 bronze badges
3
- 1 Does this answer your question? How to trigger a file download when clicking an HTML button or JavaScript – Captain Trojan Commented Jul 14, 2020 at 16:41
- I have seen this .. no – ThunderBoy Commented Jul 14, 2020 at 16:44
- Please do elaborate on that. How exactly does the linked question not solve your problem? Do you not want the button to cause the file to be downloaded? Because that is precisely what the code in the linked post does. – Captain Trojan Commented Jul 14, 2020 at 16:51
3 Answers
Reset to default 3You can use the download attribute in anchor tag. It can contain extensions like .img, .pdf, .txt, .html, etc. Here is an example
<a href="/images/myw3schoolsimage.jpg" download>
Put the php code in another page and make the download in side form with method post . in the page_with_code_to_generate_the_excel.php
if(isset($_POST){ ..PUT THE PHP CODE HERE}
that's how I did it it work every time, I hope my answer helped you ^_^
First, you wanna separate your HTML and PHP Script.
In your HTML link to your PHP Script processing the excel file and send the correct headers for forcing the file to download, see this Stackoverflow question:
Force file download with php using header() - by User: Kerp
本文标签:
版权声明:本文标题:javascript - How to make a button, that when you click it downloads an excel file (phpspreadsheet) - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745541606a2662519.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论