搜索
系统检测到您的用户名不符合规范:

tp5怎么使用PHPExcel ,简陋实现方式

浏览:9774 发布日期:2016年11月17日 分类:业务逻辑 关键字: tp5 phpexcel
tp5怎么使用PHPExcel 。
tp5怎么使用PHPExcel

123456
...

tp5我还也还没有直接调用上phpexcel, 不过我的一个项目也要用phpexcel。我绕了一个圈,从外部把phpexcel加上到tp5上。思路如下:

1.直接下载phpexcel到 tp5的某个目录。 phpexcel是可以直接使用的,下载下来的带着很多demo实例。主要意思是实现了对某个excel文件解析成一个数组。我们需要的就是这个数组。

2. 通过tp5后台做好上传的excel文件,上传到的路径设置为第一步phpexcel需要读取的一个文件夹中。然后通过get传过去到phpexcel文件和文件名。

3. phpexcel 根据tp5 下某个文件 传来的excel文件名 进行解析成 数组。

4. 把这个数组存入数据库。 我这里手工又原生写的数据库链接,十分啰嗦,不变维护。理想的状态至少再把这个数组传回到 tp5 的框架里面去处理,我没有找到回传的方法。

2017年6月28日今天上来看到评论上要demo代码,我去翻了一下代码,看看都是去年10月份写的了,时间以上具体路径都忘了,记住的往往是实现思路。

下面这个是PHPExcel里自带的exampleReader01.php文件,我就直接用的这个演示稍微改了一下实现的。我保存的路径是\vendor\PHPExcel\Documentation\Examples\Reader <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>PHPExcel Reader Example #01</title>

</head>
<body>

<!-- <h1>PHPExcel Reader Example #01</h1>
<h2>Simple File Reader using PHPExcel_IOFactory::load()</h2> -->
<?php
header("Content-Type: text/html;charset=utf-8");
/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');

/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';

if ($_GET["name"]) {

//echo $_GET["name"];

$filename = $_GET["name"];
$userget = $_GET["username"];

# code...
$inputFileName = './sampleData'.$filename;
//echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory to identify the format<br />';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);


//echo '<hr />';

$sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);

// var_dump($sheetData);
// echo '不统计多维数组:'.count($sheetData,0);
// echo '或用sizeof为'.sizeof($sheetData,0);

// var_dump($_SERVER['SERVER_NAME']);exit();
//本地数据库,和在线数据库的切换功能;
if ( $_SERVER['SERVER_NAME']=="localhost") {
# code...
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "youme";
} else {
# code...
// $servername = "7rg97t1x.2259.dnstoo.com";
// $username = "c2j95tkx_f";
// $password = "zv92ljv5";
// $dbname = "c2j95tkx";
$servername = "localhost";
$username = "5915691c1e4cb";
$password = "HTEFdhwo243";
$dbname = "5915691c1e4cb";
}

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}

$conn->query("SET NAMES utf8");

// var_dump("expression");exit();

if ($_GET["m"]==1) {
# 导入用户...

for ($i=2; $i < count($sheetData,0)+1 ; $i++) {
# code...

$gmmb = $sheetData["$i"] ["B"];
$gmmc = $sheetData["$i"] ["C"];
$gmmd = $sheetData["$i"] ["D"];
$gmme = $sheetData["$i"] ["E"];
$gmmf = $sheetData["$i"] ["F"];
$gmmg = $sheetData["$i"] ["G"];
$gmmh = $sheetData["$i"] ["H"];
$gmmi = $sheetData["$i"] ["I"];
$gmmj = $sheetData["$i"] ["J"];
$gmmk = $sheetData["$i"] ["K"];
$gmml = $sheetData["$i"] ["L"];
$gmmm = $sheetData["$i"] ["M"];



$sql2 = "INSERT INTO gmt_member(username, name, province,city,area,school,grade,class,serialnumber,telephone,type,level,number)
VALUES ('$userget', '$gmmb', '$gmmc', '$gmmd', '$gmme', '$gmmf', '$gmmg', '$gmmh', '$gmmi', '$gmmj', '$gmmk', '$gmml', '$gmmm')";


if ($conn->query($sql2) === TRUE) {
$idq = $i-1;

} else {
echo "Error: " . $sql2 . "<br>" . $conn->error;
}

}
$done = count($sheetData,0)-1;
echo "<h2>导入了".$done."个用户</h2>";

} else {
# // 导入问卷...


$gmmb = $sheetData["2"] ["B"];
$gmmc = $sheetData["2"] ["C"];
$time = time();

$sql = "INSERT INTO gmt_cate(catename, title,username,time)
VALUES ('$gmmb', '$gmmc','$userget','$time')";

// $conn->query($sql);

if ($conn->query($sql) === TRUE) {

echo "<h2>导入题目成功</h2>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$idsql = mysqli_insert_id($conn);

for ($i=2; $i < count($sheetData,0)+1 ; $i++) {
# code...

$gmmd = $sheetData["$i"] ["D"];
$gmme = $sheetData["$i"] ["E"];
$gmmf = $sheetData["$i"] ["F"];
$gmmg = $sheetData["$i"] ["G"];
$gmmh = $sheetData["$i"] ["H"];
$gmmi = $sheetData["$i"] ["I"];
$gmmj = $sheetData["$i"] ["J"];
$gmmk = $sheetData["$i"] ["K"];

//var_dump($idsql);exit();

$sql2 = "INSERT INTO gmt_cate_contens(cate, title, type, answer1, answer2, answer3, answer4, answer5, answer6)
VALUES ('$idsql', '$gmmd', '$gmme', '$gmmf', '$gmmg', '$gmmh', '$gmmi', '$gmmj', '$gmmk')";


if ($conn->query($sql2) === TRUE) {
$idq = $i-1;
echo "<h2>第".$idq."题导入成功</h2>";
} else {
echo "Error: " . $sql2 . "<br>" . $conn->error;
}

}
}
$conn->close();


}

?>




<body>
</html>
再简单说明几句:

1.代码第15行,set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');

这个是接收thinkphp你后台的一个提交excel文件的接口。接收到了,就获得了上来的文件名和存储路径。

2.然后我们依托phpexcel的功能,获得一个数组

3.我把这个数组 对应自己数据库的需求 存入数据库,返回 导入完成了

导入的结果,去tinkphp后台就可以根据需要查询了。

其实我是完全脱离了thinkphp的,至少不用这这里重新手工设置数据库链接就好了,直接调用thinkphp配置文件里的
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
guomengtao
积分:817 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /