php - 使用php将上传的excel文件转换为csv

标签 php mysql excel csv file-upload

我正在尝试使用 php 创建一个网页,该网页使用浏览按钮在页面上上传 excel 文件并将其导入 mysql 数据库。

我可以上传csv文件并将其导入数据库

//html代码

<form action="import.php" enctype="multipart/form-data" method="post"
role="form">
<input type="file" name="file" id="file" accept=".xls">
<br><br>
<input type="submit" name="submit" value="submit">

//php代码

 if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
 } 
 echo nl2br("Connected to Database successfully \n");
 mysqli_query($conn,'Truncate table sheet');
 $file = $_FILES['file']['tmp_name'];
 file_put_contents($file,str_replace("'","\'",file_get_contents($file)));
 $handle = fopen($file,"r");

//另一部分代码

 if($sql) {
     $ffilename=basename($_FILES['file']['name']);
     $filename=preg_replace('/\\.csv/',' ',$ffilename);
     echo "File ".$filename." imported in database";
 } 

我想上传 excel 文件并将其转换为 csv,而无需按任何额外的按钮,并对我一直使用的 csv 文件使用相同的代码,即 csv 文件将被导入,但 excel 文件将被上传。

最佳答案

您可以使用 Github: PHPOffice/PhpSpreadsheet这是Github: PHPOffice/PHPExcel的继任者

composer require phpoffice/phpspreadsheet 安装它

require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$reader = new Xls();
$spreadsheet = $reader->load("test.xls");
$writer = new Csv($spreadsheet);
$writer->save("test.csv");

输入文件test.xls
enter image description here

输出文件text.csv
enter image description here


您也可以引用How to convert Excel XLS to CSV using PHP

关于php - 使用php将上传的excel文件转换为csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57521118/

相关文章:

php - 路由问题 CodeIgniter

.net - 当我使用没有 OleDBConnection 对象的 OleDbDataAdapter 对象时,为什么我的 .NET 2.0 应用程序在 .NET 4.0 下崩溃?

c# - 如何使用 NPOI 在 C# 中使用列名获取 excel 单元格值

java - 使用单个准备好的语句删除超过 1 条记录

excel - 将参数从 Excel 工作簿中的单元格传递到 SQL 查询

php - MySQL单插入使用子查询行作为列

php - 验证时出现 Google 日历 SSL 错误

php - 如何在服务器中导入一个大的SQL文件?

javascript - 如何使用PHP在mysql数据库中动态添加html表数据?

mysql - 如何运行 SELECT 并将多个列合并为主行中的附加列?