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

如何使用 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)来解析这个响应表。

示例代码和文件在底部。

  1. excelimport.xlsx(Excel文件)

下载链接

  1. 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 库通过链接下载。



aluckdog
浏览 75回答 1
1回答

jeck猫

好消息:我有答案解析响应表与 PHPExcel 导入 Excel 文件以输入标签(例如:自动填充输入 id=“fname” 到 Hello 和输入 id=“lname” 到 World)用我的完整源代码。我有链接的答案。excelimport.xlsx(Excel文件)下载链接excelimport.php(PHP 代码)<!DOCTYPE html>&nbsp;&nbsp;<html>&nbsp;&nbsp;<head>&nbsp;&nbsp;&nbsp; &nbsp; <meta charset="UTF-8">&nbsp;&nbsp;&nbsp; &nbsp; <title>Document</title>&nbsp; &nbsp; <style>&nbsp; &nbsp; h2 {display: inline;}&nbsp; &nbsp; </style></head><body><form action="" method="post" enctype="multipart/form-data" name="myform1" id="myform1">&nbsp; &nbsp; <h2 for="myfile1">Select files : </h2><input type="file" name="excelFile" id="excelFile" /><br><br>&nbsp; &nbsp; <h2 for="fname">First name : </h2><input type="text" id="fname" name="fname"><br><br>&nbsp; &nbsp; <h2 for="lname">Last name : </h2><input type="text" id="lname" name="lname"><br><br>&nbsp; <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>&nbsp; &nbsp; &nbsp;<script type="text/javascript">$(function(){&nbsp; &nbsp; // เมื่อฟอร์มการเรียกใช้ evnet submit ข้อมูล&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; $("#excelFile").on("change",function(e){&nbsp; &nbsp; &nbsp; &nbsp; e.preventDefault(); // ปิดการใช้งาน submit ปกติ เพื่อใช้งานผ่าน ajax&nbsp; &nbsp; &nbsp; &nbsp; // เตรียมข้อมูล form สำหรับส่งด้วย&nbsp; FormData Object&nbsp; &nbsp; &nbsp; &nbsp;var formData = new FormData($("#myform1")[0]);&nbsp; &nbsp; &nbsp; &nbsp; // ส่งค่าแบบ POST ไปยังไฟล์ read_excel.php รูปแบบ ajax แบบเต็ม&nbsp; &nbsp; &nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url: 'read_excel.php',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: 'POST',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; data: formData,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*async: false,*/&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cache: false,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; contentType: false,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; processData: false&nbsp; &nbsp; &nbsp; &nbsp; }).done(function(data){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(data);&nbsp; // ทดสอบแสดงค่า&nbsp; ดูผ่านหน้า console/*&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; การใช้งาน console log เพื่อ debug javascript ใน chrome firefox และ ie&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; http://www.ninenik.com/content.php?arti_id=692 via @ninenik&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#fname").val(data.A2);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#lname").val(data.B2);&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; });});</script></body></html>read_excel.php(PHP 代码)<?phpheader("Content-type:application/json; charset=UTF-8");&nbsp; &nbsp;&nbsp;header("Cache-Control: no-store, no-cache, must-revalidate");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;header("Cache-Control: post-check=0, pre-check=0", false);&nbsp;/** 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.phprequire_once("PHPExcel/Classes/PHPExcel.php");?><?php&nbsp;if(isset($_FILES['excelFile']['name']) && $_FILES['excelFile']['name']!=""){&nbsp; &nbsp; $tmpFile = $_FILES['excelFile']['tmp_name'];&nbsp;&nbsp;&nbsp; &nbsp; $fileName = $_FILES['excelFile']['name'];&nbsp; // เก็บชื่อไฟล์&nbsp; &nbsp; $_fileup = $_FILES['excelFile'];&nbsp; &nbsp; $info = pathinfo($fileName);&nbsp; &nbsp; $allow_file = array("csv","xls","xlsx");/*&nbsp; print_r($info);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// ข้อมูลไฟล์&nbsp; &nbsp;&nbsp; &nbsp; print_r($_fileup);*/&nbsp; &nbsp; if($fileName!="" && in_array($info['extension'],$allow_file)){&nbsp; &nbsp; &nbsp; &nbsp; // อ่านไฟล์จาก path temp ชั่วคราวที่เราอัพโหลด&nbsp; &nbsp; &nbsp; &nbsp; $objPHPExcel = PHPExcel_IOFactory::load($tmpFile);&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; // ดึงข้อมูลของแต่ละเซลในตารางมาไว้ใช้งานในรูปแบบตัวแปร array&nbsp; &nbsp; &nbsp; &nbsp; $cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();&nbsp; &nbsp; &nbsp; &nbsp; // วนลูปแสดงข้อมูล&nbsp; &nbsp; &nbsp; &nbsp; $v=1;&nbsp; &nbsp; &nbsp; &nbsp; $json_data = array();&nbsp; &nbsp; &nbsp; &nbsp; foreach ($cell_collection as $cell) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // ค่าสำหรับดูว่าเป็นคอลัมน์ไหน เช่น A B C ....&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // คำสำหรับดูว่าเป็นแถวที่เท่าไหร่ เช่น 1 2 3 .....&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // ค่าของข้อมูลในเซลล์นั้นๆ เช่น A1 B1 C1 ....&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // เท่านี้เราก็สามารถแสดงข้อมูลจากการอ่านไฟล์ได้แล้ว และสามารถนำข้อมูลเหล่านี้&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // ทำการบันทักลงฐานข้อมูล หรือแสดงได้เลย&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $json_data["$column$row"] = $data_value;//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $v." ----&nbsp; ".$data_value."<br>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$v++;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// แปลง array เป็นรูปแบบ json string&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; if(isset($json_data)){&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $json= json_encode($json_data);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(isset($_GET['callback']) && $_GET['callback']!=""){&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $_GET['callback']."(".$json.");";&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else{&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $json;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; }}&nbsp;?>我使用 PHPExcel 库通过链接下载。
打开App,查看更多内容
随时随地看视频慕课网APP