Maison  >  Article  >  développement back-end  >  Comment utiliser PHP et UniApp pour importer et exporter des données dans Excel

Comment utiliser PHP et UniApp pour importer et exporter des données dans Excel

WBOY
WBOYoriginal
2023-07-04 17:53:142587parcourir

Comment utiliser PHP et UniApp pour implémenter l'importation et l'exportation de données Excel

L'importation et l'exportation de données sont une exigence que nous rencontrons souvent dans le développement Web. En tant que format de données couramment utilisé, Excel peut afficher clairement les données sous forme de tableau et présente une compatibilité élevée, ce qui en fait le choix de nombreuses personnes. Cet article expliquera comment utiliser PHP et UniApp pour importer et exporter des données dans Excel respectivement.

Tout d’abord, voyons comment importer des données dans Excel via PHP.

  1. Installer la bibliothèque PHPExcel
    PHPExcel est une bibliothèque PHP puissante et facile à utiliser pour traiter les fichiers Excel. Nous devons d'abord installer la bibliothèque PHPExcel dans le projet.

Peut être installé via Composer, ajoutez le code suivant au fichier composer.json :

{
    "require": {
        "phpoffice/phpexcel": "^1.8"
    }
}

Puis exécutez composer install dans la ligne de commande pour terminer l'installation.

  1. Créer une interface d'importation
    Dans le projet PHP, créez une interface d'importation Excel pour recevoir le fichier Excel transmis par le front-end, analyser le contenu du fichier, stocker les données dans la base de données ou effectuer d'autres opérations.
<?php
require 'vendor/autoload.php';
use PhpOfficePhpSpreadsheetIOFactory;

if ($_FILES['file']['error'] == 0) {
    $file = $_FILES['file']['tmp_name'];
    $reader = IOFactory::createReader('Xlsx');
    $spreadsheet = $reader->load($file);
    $worksheet = $spreadsheet->getActiveSheet();
    
    // 获取数据并处理
    $data = [];
    foreach ($worksheet->getRowIterator() as $row) {
        $rowData = [];
        foreach ($row->getCellIterator() as $cell) {
            $rowData[] = $cell->getValue();
        }
        $data[] = $rowData;
    }
    
    // 处理数据
    // ...
    
    // 返回处理结果
    echo json_encode([
        'status' => 1,
        'message' => '上传成功'
    ]);
} else {
    echo json_encode([
        'status' => 0,
        'message' => '上传失败'
    ]);
}
?>
  1. Appelez l'interface dans UniApp
    Dans le projet UniApp, utilisez uni.request pour appeler l'interface ci-dessus et téléchargez le fichier Excel sur le serveur en tant que FormData.
export default {
    methods: {
        importExcel() {
            uni.chooseMessageFile({
                count: 1,
                success: (res) => {
                    const tempFilePath = res.tempFiles[0].path;
                    uni.uploadFile({
                        url: 'http://localhost/import.php',
                        filePath: tempFilePath,
                        name: 'file',
                        success: (res) => {
                            const data = JSON.parse(res.data);
                            if (data.status === 1) {
                                uni.showToast({
                                    title: '导入成功',
                                    icon: 'success'
                                });
                            } else {
                                uni.showToast({
                                    title: '导入失败',
                                    icon: 'none'
                                });
                            }
                        },
                        fail: () => {
                            uni.showToast({
                                title: '上传失败',
                                icon: 'none'
                            });
                        }
                    });
                }
            });
        }
    }
}

Voyons comment exporter des données vers Excel via UniApp.

  1. Créer une interface d'exportation
    Dans le projet PHP, créez une interface d'exportation Excel, obtenez les données de la base de données selon vos besoins, puis exportez les données sous forme de fichier Excel que les utilisateurs pourront télécharger.
<?php
require 'vendor/autoload.php';
use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

// 获取数据
$data = [
    ['name', 'age', 'gender'],
    ['Tom', 20, 'Male'],
    ['Lisa', 25, 'Female'],
    // ...
];

// 创建Excel文件
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
$worksheet->fromArray($data);

// 下载文件
$writer = new Xlsx($spreadsheet);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="export.xlsx"');
$writer->save('php://output');
?>
  1. Appelez l'interface dans UniApp
    Dans le projet UniApp, utilisez uni.downloadFile pour télécharger le fichier Excel exporté.
export default {
    methods: {
        exportExcel() {
            uni.downloadFile({
                url: 'http://localhost/export.php',
                success: (res) => {
                    uni.saveFile({
                        tempFilePath: res.tempFilePath,
                        success: (res) => {
                            uni.showToast({
                                title: '导出成功',
                                icon: 'success'
                            });
                        }
                    });
                },
                fail: () => {
                    uni.showToast({
                        title: '导出失败',
                        icon: 'none'
                    });
                }
            });
        }
    }
}

Grâce aux étapes ci-dessus, nous pouvons facilement implémenter la fonction d'importation et d'exportation Excel des données. Que ce soit sur le backend PHP ou sur le frontend UniApp, cette tâche peut être accomplie via des bibliothèques et des interfaces pertinentes. J'espère que cet article pourra vous être utile !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn