TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码
/
注册
用户名
邮箱

PHP使用PHPExcel读取excel数据并批量上传到数据库

2025-06-04
/
0 评论
/
7 阅读
/
正在检测是否收录...
06/04

首先,确保你已经安装了 PHPExcel。如果还没有安装,可以通过 Composer 来安装:

bash composer require phpoffice/phpspreadsheet

步骤 2: 创建数据库连接

使用 PDO 或 mysqli 扩展来连接你的数据库。这里以 PDO 为例:

php $dsn = 'mysql:host=your_host;dbname=your_dbname;charset=utf8'; $username = 'your_username'; $password = 'your_password'; $dbh = new PDO($dsn, $username, $password);

步骤 3: 读取 Excel 文件

使用 PHPExcel 的 Reader 类来读取 Excel 文件。由于 PHPExcel 已被弃用,这里我们使用 PHP Spreadsheet:

```php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\IReader;
use PhpOffice\PhpSpreadsheet\Cell\Cell;
use PhpOffice\PhpSpreadsheet\Cell\DataType;

$reader = IOFactory::createReader('Xlsx'); // 如果是 XLSX 文件
$spreadsheet = $reader->load('pathtoyourexcelfile.xlsx'); // 指定文件路径
$worksheet = $spreadsheet->getActiveSheet();
$data = []; // 存储数据数组
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // 遍历所有单元格,即使它们是空的
$rowData = [];
foreach ($cellIterator as $cell) {
$rowData[] = $cell->getValue(); // 获取单元格值并添加到数组中
}
$data[] = $rowData; // 添加到数据数组中
}
```

步骤 4: 数据处理和格式化

对读取的数据进行必要的处理和格式化,以适应你的需求:

php foreach ($data as &$row) { // 假设第一列是标题,第二列是关键词,第三列是描述,第四列是正文...可以根据实际调整索引或使用更明确的方法如 $row['title'] 访问 $row['title'] = trim($row[0]); // 标题 $row['keywords'] = trim($row[1]); // 关键词(可能需要进一步处理以分词或去重) $row['description'] = trim($row[2]); // 描述(可能需要进一步处理) $row['content'] = trim($row[3]); // 正文(可能需要进一步处理) // 根据需要添加更多的处理逻辑...例如内容长度限制、Markdown 格式化等...(此例略) }

php
foreach ($data as $item) { // 对每条记录进行 Markdown 格式化(假设仅做简单示例):: // 以下代码仅为示例,具体实现需根据实际需求调整 $item['content'] = "### " . $item['title'] . "\n" . $item['description'] . "\n" . $item['content']; // Markdown格式化 // 保存到数据库 $sql = "INSERT INTO your_table (title, keywords, description, content) VALUES (?, ?, ?, ?)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $item['title']); $stmt->bindParam(2, $item['keywords']); $stmt->bindParam(3, $item['description']); $stmt->bindParam(4, $item['content']); $stmt->execute(); }

朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/28663/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

最新回复

  1. 强强强
    2025-04-07
  2. jesse
    2025-01-16
  3. sowxkkxwwk
    2024-11-20
  4. zpzscldkea
    2024-11-20
  5. bruvoaaiju
    2024-11-14

标签云