当前位置:   article > 正文

PHP和UniApp实现数据的Excel导入与导出_uniapp 导入表格

uniapp 导入表格
  1. 创建导入接口
    在PHP项目中,创建一个Excel导入接口,接收前端传递的Excel文件,并解析文件内容,将数据存入数据库或进行其他操作。
  1. <?php
  2. require 'vendor/autoload.php';
  3. use PhpOfficePhpSpreadsheetIOFactory;
  4. if ($_FILES['file']['error'] == 0) {
  5. $file = $_FILES['file']['tmp_name'];
  6. $reader = IOFactory::createReader('Xlsx');
  7. $spreadsheet = $reader->load($file);
  8. $worksheet = $spreadsheet->getActiveSheet();
  9. // 获取数据并处理
  10. $data = [];
  11. foreach ($worksheet->getRowIterator() as $row) {
  12. $rowData = [];
  13. foreach ($row->getCellIterator() as $cell) {
  14. $rowData[] = $cell->getValue();
  15. }
  16. $data[] = $rowData;
  17. }
  18. // 处理数据
  19. // ...
  20. // 返回处理结果
  21. echo json_encode([
  22. 'status' => 1,
  23. 'message' => '上传成功'
  24. ]);
  25. } else {
  26. echo json_encode([
  27. 'status' => 0,
  28. 'message' => '上传失败'
  29. ]);
  30. }
  31. ?>

2. 在UniApp中调用接口

UniApp项目中,使用uni.request来调用上述接口,将Excel文件作为FormData上传到服务器。

  1. export default {
  2. methods: {
  3. importExcel() {
  4. uni.chooseMessageFile({
  5. count: 1,
  6. success: (res) => {
  7. const tempFilePath = res.tempFiles[0].path;
  8. uni.uploadFile({
  9. url: 'http://localhost/import.php',
  10. filePath: tempFilePath,
  11. name: 'file',
  12. success: (res) => {
  13. const data = JSON.parse(res.data);
  14. if (data.status === 1) {
  15. uni.showToast({
  16. title: '导入成功',
  17. icon: 'success'
  18. });
  19. } else {
  20. uni.showToast({
  21. title: '导入失败',
  22. icon: 'none'
  23. });
  24. }
  25. },
  26. fail: () => {
  27. uni.showToast({
  28. title: '上传失败',
  29. icon: 'none'
  30. });
  31. }
  32. });
  33. }
  34. });
  35. }
  36. }
  37. }

 通过UniApp实现数据的Excel导出

  1. 创建导出接口
    在PHP项目中,创建一个Excel导出接口,根据需要从数据库中获取数据,然后将数据导出为Excel文件供用户下载。
  1. <?php
  2. require 'vendor/autoload.php';
  3. use PhpOfficePhpSpreadsheetSpreadsheet;
  4. use PhpOfficePhpSpreadsheetWriterXlsx;
  5. // 获取数据
  6. $data = [
  7. ['name', 'age', 'gender'],
  8. ['Tom', 20, 'Male'],
  9. ['Lisa', 25, 'Female'],
  10. // ...
  11. ];
  12. // 创建Excel文件
  13. $spreadsheet = new Spreadsheet();
  14. $worksheet = $spreadsheet->getActiveSheet();
  15. $worksheet->fromArray($data);
  16. // 下载文件
  17. $writer = new Xlsx($spreadsheet);
  18. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  19. header('Content-Disposition: attachment;filename="export.xlsx"');
  20. $writer->save('php://output');
  21. ?>

2. 在UniApp中调用接口
在UniApp项目中,使用uni.downloadFile来下载导出的Excel文件。

  1. export default {
  2. methods: {
  3. exportExcel() {
  4. uni.downloadFile({
  5. url: 'http://localhost/export.php',
  6. success: (res) => {
  7. uni.saveFile({
  8. tempFilePath: res.tempFilePath,
  9. success: (res) => {
  10. uni.showToast({
  11. title: '导出成功',
  12. icon: 'success'
  13. });
  14. }
  15. });
  16. },
  17. fail: () => {
  18. uni.showToast({
  19. title: '导出失败',
  20. icon: 'none'
  21. });
  22. }
  23. });
  24. }
  25. }
  26. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/613873
推荐阅读
相关标签
  

闽ICP备14008679号