mysql导入导出excel PHP代码
时间: 2023-09-18 09:05:29 浏览: 246
### 回答1:
以下是 PHP 代码示例,用于从 MySQL 数据库导出数据到 Excel 文件:
```
<?php
// 连接数据库
$conn = mysqli_connect("hostname", "username", "password", "database_name");
// 检查连接是否成功
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 查询数据库并导出到 Excel 文件
$sql = "SELECT * FROM table_name";
$result = mysqli_query($conn, $sql);
// 创建 PHPExcel 对象
$objPHPExcel = new PHPExcel();
// 设置工作表
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();
// 设置标题行
$sheet->setCellValue("A1", "列1");
$sheet->setCellValue("B1", "列2");
...
// 循环读取数据库中的数据
$row = 2; // 从第2行开始
while ($row_data = mysqli_fetch_assoc($result)) {
$sheet->setCellValue("A".$row, $row_data["column1"]);
$sheet->setCellValue("B".$row, $row_data["column2"]);
...
$row++;
}
// 设置保存路径
$file_name = "导出文件名.xlsx";
$save_path = "导出文件路径/".$file_name;
// 保存 Excel 文件
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save($save_path);
// 关闭数据库连接
mysqli_close($conn);
// 输出下载链接
echo "文件已导出,请点击 <a href='".$save_path."'>下载</a>";
```
以下是 PHP 代码示例,用于从 Excel 文件导入数据到 MySQL 数据库:
```
<?php
// 连接数据库
$conn = mysqli_connect("hostname", "username", "
### 回答2:
MySQL导入导出Excel可以通过使用PHP的PHPExcel库来实现。
导出Excel:
1. 首先,你需要在服务器上安装PHPExcel库。你可以通过composer进行安装,或者从官方网站上下载并放置在项目的合适位置。
2. 在PHP代码中,包含PHPExcel库的autoload.php文件,并创建一个PHPExcel对象。
3. 连接到你的MySQL数据库,并查询所需的数据。
4. 使用PHPExcel对象设置Excel文件的属性,如标题、作者等。
5. 循环通过查询结果集获取的数据,将数据写入PHPExcel对象的工作表中。
6. 保存PHPExcel对象为指定的Excel文件格式(如.xls或.xlsx)。
下面是一个简单的示例代码:
```php
<?php
require 'path/to/autoload.php';
// 创建PHPExcel对象
$objPHPExcel = new PHPExcel();
// 连接到MySQL数据库
$mysqli = new mysqli("localhost", "username", "password", "database_name");
if ($mysqli->connect_error) {
die("连接失败:" . $mysqli->connect_error);
}
// 查询所需的数据
$query = "SELECT * FROM table_name";
$result = $mysqli->query($query);
// 设置Excel文件的属性
$objPHPExcel->getProperties()->setTitle("导出数据");
$objPHPExcel->getProperties()->setCreator("Your Name");
// 将数据写入工作表
$row = 1;
while ($data = $result->fetch_assoc()) {
$col = 1;
foreach ($data as $value) {
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value);
$col++;
}
$row++;
}
// 保存Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save("path/to/save/excel_file.xls");
// 关闭MySQL连接
$mysqli->close();
?>
```
导入Excel:
1. 首先,你需要添加一个文件上传表单在你的HTML页面上,并为该表单指定一个处理上传文件的PHP脚本。
2. 在处理上传文件的PHP脚本中,加载PHPExcel库的autoload.php文件,并创建一个PHPExcel对象。
3. 获取上传的Excel文件,并使用PHPExcel对象的IOFactory类来加载该文件。
4. 获取Excel文件中的工作表,并循环遍历每个工作表。
5. 循环通过PHPExcel对象获取的每个工作表中的行和列,将数据插入到你的MySQL数据库中。
下面是一个简单的示例代码:
```php
<?php
require 'path/to/autoload.php';
if(isset($_FILES['file']['name'])){
$inputFileName = $_FILES['file']['tmp_name'];
// 创建PHPExcel对象
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();
for ($row = 1; $row <= $highestRow; $row++) {
$rowData = $worksheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
// 将数据插入到你的MySQL数据库中
// ...
}
}
}
?>
```
以上就是使用PHP代码实现MySQL导入导出Excel的简单示例。请记得替换示例代码中的你自己的MySQL连接信息和文件路径,以及根据你的表结构和需求进行相应的修改。
### 回答3:
导入导出MySQL和Excel之间的数据可以通过PHP代码实现,以下是一个简单的示例:
导出Excel文件:
```php
<?php
// 连接MySQL数据库
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
// 查询需要导出的数据
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
// 创建Excel文件
$filename = "data.xlsx";
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// 填充Excel文件的表头
$col = 1;
$sheet->setCellValueByColumnAndRow($col++, 1, 'Column1');
$sheet->setCellValueByColumnAndRow($col++, 1, 'Column2');
$sheet->setCellValueByColumnAndRow($col++, 1, 'Column3');
// 填充Excel文件的数据
$row = 2;
while ($row_data = $result->fetch_assoc()) {
$col = 1;
$sheet->setCellValueByColumnAndRow($col++, $row, $row_data['column1']);
$sheet->setCellValueByColumnAndRow($col++, $row, $row_data['column2']);
$sheet->setCellValueByColumnAndRow($col++, $row, $row_data['column3']);
$row++;
}
// 导出Excel文件
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save($filename);
echo "Excel文件已导出!";
?>
```
导入Excel文件:
```php
<?php
// 连接MySQL数据库
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
// 上传Excel文件
$filename = $_FILES["file"]["name"];
$target_dir = "uploads/";
$target_file = $target_dir . basename($filename);
move_uploaded_file($_FILES["file"]["tmp_name"], $target_file);
// 导入Excel数据
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($target_file);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();
// 插入数据到MySQL数据库
foreach ($rows as $row) {
// 判断Excel文件列的对应关系
$column1 = $row[0];
$column2 = $row[1];
$column3 = $row[2];
// 执行插入操作
$sql = "INSERT INTO table (column1, column2, column3) VALUES ('$column1', '$column2', '$column3')";
$conn->query($sql);
}
echo "数据已导入MySQL数据库!";
?>
```
请确保已经安装了PhpSpreadsheet包,并将代码中的数据库连接信息和表格列名以及表名适应你自己的数据库表结构。
阅读全文