为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHPExcel 解析响应表导入 Excel 文件以输入标签?

如何使用 PHPExcel 解析响应表导入 Excel 文件以输入标签?

PHP
aluckdog 2022-10-14 16:26:22
如何使用 PHPExcel 将这个响应表解析为所需的输入字段(例如:自动填充input id="fname"到 Hello 和自动填充input id="lname"到 World)?我可以1.发送文件到 PHP。2.用第三方库解析EXCEL文件(使用PHPExcel库)。3.为 AJAX/POST 创建响应到 HTML 页面。但我无法使用 PHPExcel 将 Excel 文件导入所需的输入字段(例如:自动填充input id="fname"到 Hello 和自动填充input id="lname"到 World)来解析这个响应表。示例代码和文件在底部。excelimport.xlsx(Excel文件)下载链接excelimport.php(PHP 代码)<!DOCTYPE html><html><head><style>h2 {display: inline;}</style><script>var _validFileExtensions = [".xls", ".xlsx", ".csv"];    function ValidateSingleInput(oInput) {    if (oInput.type == "file") {        var sFileName = oInput.value;         if (sFileName.length > 0) {            var blnValid = false;            for (var j = 0; j < _validFileExtensions.length; j++) {                var sCurExtension = _validFileExtensions[j];                if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) {                    blnValid = true;                    break;                }            }            if (!blnValid) {                alert("Sorry, " + sFileName + " is invalid, allowed extensions are: " + _validFileExtensions.join(", "));                oInput.value = "";                return false;            }        }    }    return true;}</script></head><body>我使用 PHPExcel 库通过链接下载。
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

好消息:我有答案解析响应表与 PHPExcel 导入 Excel 文件以输入标签(例如:自动填充输入 id=“fname” 到 Hello 和输入 id=“lname” 到 World)用我的完整源代码。

我有链接的答案。

  1. excelimport.xlsx(Excel文件)

下载链接

  1. excelimport.php(PHP 代码)

<!DOCTYPE html>  

<html>  

<head>  

    <meta charset="UTF-8">  

    <title>Document</title>

    <style>

    h2 {display: inline;}

    </style>

</head>


<body>


<form action="" method="post" enctype="multipart/form-data" name="myform1" id="myform1">

    <h2 for="myfile1">Select files : </h2><input type="file" name="excelFile" id="excelFile" /><br><br>

    <h2 for="fname">First name : </h2><input type="text" id="fname" name="fname"><br><br>

    <h2 for="lname">Last name : </h2><input type="text" id="lname" name="lname"><br><br>

  <input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" />

</form>


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>     

<script type="text/javascript">

$(function(){



    // เมื่อฟอร์มการเรียกใช้ evnet submit ข้อมูล        

    $("#excelFile").on("change",function(e){

        e.preventDefault(); // ปิดการใช้งาน submit ปกติ เพื่อใช้งานผ่าน ajax


        // เตรียมข้อมูล form สำหรับส่งด้วย  FormData Object

       var formData = new FormData($("#myform1")[0]);


        // ส่งค่าแบบ POST ไปยังไฟล์ read_excel.php รูปแบบ ajax แบบเต็ม

        $.ajax({

            url: 'read_excel.php',

            type: 'POST',

            data: formData,

            /*async: false,*/

            cache: false,

            contentType: false,

            processData: false

        }).done(function(data){

                console.log(data);  // ทดสอบแสดงค่า  ดูผ่านหน้า console

/*              การใช้งาน console log เพื่อ debug javascript ใน chrome firefox และ ie 

                http://www.ninenik.com/content.php?arti_id=692 via @ninenik         */

                $("#fname").val(data.A2);

                $("#lname").val(data.B2);

        });     


    });



});

</script>

</body>

</html>

read_excel.php(PHP 代码)

<?php

header("Content-type:application/json; charset=UTF-8");    

header("Cache-Control: no-store, no-cache, must-revalidate");         

header("Cache-Control: post-check=0, pre-check=0", false); 

/** Error reporting */

error_reporting(E_ALL);

ini_set('display_errors', TRUE);

ini_set('display_startup_errors', TRUE);

date_default_timezone_set('Asia/Bangkok');

// http://php.net/manual/en/timezones.php

require_once("PHPExcel/Classes/PHPExcel.php");

?>

<?php 

if(isset($_FILES['excelFile']['name']) && $_FILES['excelFile']['name']!=""){

    $tmpFile = $_FILES['excelFile']['tmp_name'];  

    $fileName = $_FILES['excelFile']['name'];  // เก็บชื่อไฟล์

    $_fileup = $_FILES['excelFile'];

    $info = pathinfo($fileName);

    $allow_file = array("csv","xls","xlsx");

/*  print_r($info);         // ข้อมูลไฟล์   

    print_r($_fileup);*/

    if($fileName!="" && in_array($info['extension'],$allow_file)){

        // อ่านไฟล์จาก path temp ชั่วคราวที่เราอัพโหลด

        $objPHPExcel = PHPExcel_IOFactory::load($tmpFile);      



        // ดึงข้อมูลของแต่ละเซลในตารางมาไว้ใช้งานในรูปแบบตัวแปร array

        $cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();


        // วนลูปแสดงข้อมูล

        $v=1;

        $json_data = array();

        foreach ($cell_collection as $cell) {

            // ค่าสำหรับดูว่าเป็นคอลัมน์ไหน เช่น A B C ....

            $column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();

            // คำสำหรับดูว่าเป็นแถวที่เท่าไหร่ เช่น 1 2 3 .....

            $row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();

            // ค่าของข้อมูลในเซลล์นั้นๆ เช่น A1 B1 C1 ....

            $data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();          


            // เท่านี้เราก็สามารถแสดงข้อมูลจากการอ่านไฟล์ได้แล้ว และสามารถนำข้อมูลเหล่านี้

            // ทำการบันทักลงฐานข้อมูล หรือแสดงได้เลย

            $json_data["$column$row"] = $data_value;

//            echo $v." ----  ".$data_value."<br>";

             $v++;

        }       

         // แปลง array เป็นรูปแบบ json string  

        if(isset($json_data)){  

            $json= json_encode($json_data);    

            if(isset($_GET['callback']) && $_GET['callback']!=""){    

            echo $_GET['callback']."(".$json.");";        

            }else{    

            echo $json;    

            }    

        }        

    }

?>

我使用 PHPExcel 库通过链接下载。


查看完整回答
反对 回复 2022-10-14
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信