重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
if($result){ //如果上传成功了
创新互联专业为企业提供秦都网站建设、秦都做网站、秦都网站设计、秦都网站制作等企业网站建设、网页设计与制作、秦都企业网站模板建站服务,十多年秦都做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
import("Org.Util.PHPExcel.Reader.Excel5"); //引入PHPExcel类,这是在thinkphp中使用
import("Org.Util.PHPExcel.IOFactory");
import("Org.Util.PHPExcel.Worksheet.MemoryDrawing");
import("Org.Util.PHPExcel");
$fileType = \PHPExcel_IOFactory::identify($result); //文件名自动判断文件类型
$objReader = \PHPExcel_IOFactory::createReader($fileType);
$objPHPExcel = $objReader-load($result);
$currentSheet = $objPHPExcel-getActiveSheet();
$highestRow = $currentSheet-getHighestRow();
$highestColumn = $currentSheet-getHighestColumn();
$objWorksheet = $objPHPExcel-getActiveSheet();
$highestRow = $objWorksheet-getHighestRow();
$time = time();
//先处理图片
$date = date("YmdH",time());
$TmpPath = UPLOAD_DIR.$date.'/';
if(!mkDirs($TmpPath)){
echo 'mkdir error';exit;
}
$Allnewpic= $currentSheet-getDrawingCollection(); //获取文档中所有图片
foreach ($Allnewpic as $k = $drawing) { //文档中图处理方法
$image = $drawing-getImageResource();
$filename=$drawing-getIndexedFilename();
$XY=$drawing-getCoordinates();
//把图片存起来
imagepng($image, $TmpPath.$filename);
/*这里后续要做图片压缩处理*/
//把图片的单元格的值设置为图片名称
$cell = $currentSheet-getCell($XY);
$cell-setValue("Upload/image/".$date.'/'.$filename);
}
$goodMsArr = array();
$errorArr = array();
for ($row = 3;$row = $highestRow;++$row){
$bn =$objWorksheet-getCellByColumnAndRow(4, $row)-getValue(); //E 品牌
$link =$objWorksheet-getCellByColumnAndRow(5, $row)-getValue(); // F链接
$img =$objWorksheet-getCellByColumnAndRow(6, $row)-getValue(); // G图片
$color =preg_replace(array('/\\s+/','/\\n/'),array('|','|'),trim($objWorksheet-getCellByColumnAndRow(7, $row)-getValue())); //H颜色串
$size =str_replace(array(' ',',',',','-'),array('|','|','|','|'),trim($objWorksheet-getCellByColumnAndRow(9, $row)-getValue()));//J 尺寸串
$price =trim($objWorksheet-getCellByColumnAndRow(12, $row)-getValue()); // H价格
//--------------是不是重复导入相同的编号,,网站编号是唯一的
if($m-query("SELECT goodsId FROM __PREFIX__goods WHERE goodsBn='".$bn."'")){
$errorArr[] = "第".$row."行的编号【".$bn."】导入重复";continue;
}
if($bn==""){
$errorArr[] = "第".$row."行的编号为空";continue;
}
if($img==""){
$errorArr[] = "第".$row."行的图片为空";continue;
}
if($color==""){
$errorArr[] = "第".$row."行的颜色为空";continue;
}
if($price==""){
$errorArr[] = "第".$row."行的价格为空";continue;
}
$sql = "INSERT INTO __PREFIX__goods(`goodsBn`,`goodsLink`,`goodsImg`,`color`,`size`,`marketPrice`,`createTime`)
VALUES('".$bn."','".$link."','".$img."','".$color."','".$size."','".$price."',".time().")";
if(!$m-execute($sql)){
$errorArr[] = "第".$row."行的数据导入错误";continue;
}
}
unlink($result);
}else{
echo 'file upload error';exit;
}
PHPExcel
PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
PHP读取示例代码
//获取上传的excel临时文件
$path = $_FILES["file"]["tmp_name"];
//将临时文件移动当前目录,可自定义存储位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//将获取在服务器中的Excel文件,此处为上传文件名
$path = $_FILES["file"]["name"];
//调用readExcel函数返回一个
二维数组
$exceArray = readExcel($path);
//创建一个读取
excel函数
function readExcel($path){
//引入PHPExcel类库
include 'Classes/PHPExcel.php';
include 'Classes/PHPExcel/IOFactory.php';
$type = 'Excel5';//设置为Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader = \PHPExcel_IOFactory::createReader($type);
$xlsReader-setReadDataOnly(true);
$xlsReader-setLoadSheetsOnly(true);
$Sheets = $xlsReader-load($path);
//开始读取上传到服务器中的Excel文件,返回一个
二维数组
$dataArray = $Sheets-getSheet(0)-
toArray();
return $dataArray;
}
------------------------------------------
Excel 类 V1.1
By Monkey
------------------------------------------
-----函数说明
读取Excel文件
function Read_Excel_File($ExcelFile,$Result)
$ExcelFile Excel文件名
$Result 返回的结果
函数返回值 正常返回0,否则返回错误信息
返回的值数组
$result[sheet名][行][列] 的值为相应Excel Cell的值
建立Excel文件
function Create_Excel_File($ExcelFile,$Data)
$ExcelFile Excel文件名
$Data Excel表格数据
请把函数写在PHP脚本的开头
例1:
?
require "excel_class.php";
Read_Excel_File("Book1.xls",$return);
for ($i=0;$icount($return[Sheet1]);$i++)
{
for ($j=0;$jcount($return[Sheet1][$i]);$j++)
{
echo $return[Sheet1][$i][$j]."|";
}
echo "br";
}
?
例2:
?
require "excel_class.php";
Read_Excel_File("Book1.xls",$return);
Create_Excel_File("ddd.xls",$return[Sheet1]);
?
推荐用“PHPExcel”,下载地址“
”,以下是
压缩包
中的“文档目录”和“截图”![[i]
本帖最后由
cmttp
于
2008-6-27
03:22
编辑
[/i]]
上一篇文章介绍了php-excel-reader读取excel文件的方法,因为需要,将excel这样的数据:新建数据库表如下:-- 数据库: `alumni`-- 表的结构 `alumni`CREATE TABLE IF NOT EXISTS `alumni` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`gid` varchar(20) DEFAULT NULL COMMENT '档案编号',`student_no` varchar(20) DEFAULT NULL COMMENT '学号',`name` varchar(32) DEFAULT NULL,PRIMARY KEY (`id`),KEY `gid` (`gid`),KEY `name` (`name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;导入后数据库结果如下:php源码如下: 复制代码 代码如下: ?php header("Content-Type:text/html;charset=utf-8"); require_once 'excel_reader2.php'; set_time_limit(20000); ini_set("memory_limit","2000M"); //使用pdo连接数据库 $dsn = "mysql:host=localhost;dbname=alumni;"; $user = "root"; $password = ""; try{ $dbh = new PDO($dsn,$user,$password); $dbh-query('set names utf8;'); }catch(PDOException $e){ echo "连接失败".$e-getMessage(); } //pdo绑定参数操作 $stmt = $dbh-prepare("insert into alumni(gid,student_no,name) values (:gid,:student_no,:name) "); $stmt-bindParam(":gid", $gid,PDO::PARAM_STR); $stmt-bindParam(":student_no", $student_no,PDO::PARAM_STR); $stmt-bindParam(":name", $name,PDO::PARAM_STR); //使用php-excel-reader读取excel内容 $data = new Spreadsheet_Excel_Reader(); $data-setOutputEncoding('UTF-8'); $data-read("stu.xls"); for ($i = 1; $i = $data-sheets[0]['numRows']; $i++) { for ($j = 1; $j = 3; $j++) { $student_no = $data-sheets[0]['cells'][$i][1]; $name = $data-sheets[0]['cells'][$i][2]; $gid = $data-sheets[0]['cells'][$i][3]; } //将获取的excel内容插入到数据库 $stmt-execute(); } echo "执行成功"; echo "最后插入的ID:".$dbh-lastInsertId(); ? 考虑到excel的量比较大,使用了PDO的绑定操作!
$handle = fopen($_FILES[importfile][tmp_name],"r");
while($items = fgetcsv($handle,1000," ")){
var_dump($items);
}
这个是我读取EXCEL上传的文件用的,按行读取,但是你的Excel必须是二进制格式的自己琢磨一下吧,网上搜索很多的