Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP dan UniApp untuk mengimport dan mengeksport data dalam Excel

Cara menggunakan PHP dan UniApp untuk mengimport dan mengeksport data dalam Excel

WBOY
WBOYasal
2023-07-04 17:53:142636semak imbas

Cara menggunakan PHP dan UniApp untuk melaksanakan import dan eksport data Excel

Mengimport dan mengeksport data ialah keperluan yang sering kita hadapi dalam pembangunan web. Sebagai salah satu format data yang biasa digunakan, Excel boleh memaparkan data dengan jelas dalam bentuk jadual dan mempunyai keserasian yang tinggi, menjadikannya pilihan ramai orang. Artikel ini akan memperkenalkan cara menggunakan PHP dan UniApp untuk mengimport dan mengeksport data dalam Excel masing-masing.

Mula-mula, mari lihat cara mengimport data ke dalam Excel melalui PHP.

  1. Pasang perpustakaan PHPExcel
    PHPExcel ialah perpustakaan PHP yang berkuasa dan mudah digunakan untuk memproses fail Excel. Mula-mula kita perlu memasang perpustakaan PHPExcel dalam projek.

Boleh dipasang melalui Composer, tambah kod berikut pada fail composer.json:

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

Kemudian laksanakan composer install dalam baris arahan untuk menyelesaikan pemasangan.

  1. Buat antara muka import
    Dalam projek PHP, cipta antara muka import Excel untuk menerima fail Excel yang diluluskan oleh bahagian hadapan, menghuraikan kandungan fail, menyimpan data dalam pangkalan data atau melaksanakan operasi lain.
<?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. Panggil antara muka dalam UniApp
    Dalam projek UniApp, gunakan uni.request untuk memanggil antara muka di atas dan muat naik fail Excel ke pelayan sebagai 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'
                            });
                        }
                    });
                }
            });
        }
    }
}

Mari kita lihat cara mengeksport data ke Excel melalui UniApp.

  1. Buat antara muka eksport
    Dalam projek PHP, cipta antara muka eksport Excel, dapatkan data daripada pangkalan data mengikut keperluan, dan kemudian eksport data sebagai fail Excel untuk dimuat turun oleh pengguna.
<?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. Panggil antara muka dalam UniApp
    Dalam projek UniApp, gunakan uni.downloadFile untuk memuat turun fail Excel yang dieksport.
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'
                    });
                }
            });
        }
    }
}

Melalui langkah di atas, kami boleh melaksanakan fungsi import dan eksport data Excel dengan mudah. Sama ada pada bahagian belakang PHP atau bahagian hadapan UniApp, tugas ini boleh dicapai melalui perpustakaan dan antara muka yang berkaitan. Harap artikel ini dapat membantu anda!

Atas ialah kandungan terperinci Cara menggunakan PHP dan UniApp untuk mengimport dan mengeksport data dalam Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn