PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。

先下载PHPExcel类库·

读取文件源码:

<?php

header("content-type:text/html;charset=utf8");

include './Classes/PHPExcel/IOFactory.php';//引入PHPExcel类

$inputFileName = './test.xls';//读取的excel文件

date_default_timezone_set('PRC');

// 读取excel文件

try {

    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);

    $objReader = PHPExcel_IOFactory::createReader($inputFileType);

    $objPHPExcel = $objReader->load($inputFileName);

} catch(Exception $e) {

    die('加载文件发生错误:"'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());

}

$sheet = $objPHPExcel->getSheet(0);

$data=$sheet->toArray();//该方法读取不到图片 图片需单独处理

$imageFilePath='./images/'.date('Y-m-d').'/';//图片在本地存储的路径

if (! file_exists ( $imageFilePath )) {

    mkdir("$imageFilePath", 0777, true);

}

//处理图片

foreach($sheet->getDrawingCollection() as $img) {

    list($startColumn,$startRow)= PHPExcel_Cell::coordinateFromString($img->getCoordinates());//获取图片所在行和列

    $imageFileName = $img->getCoordinates() . mt_rand(100, 999);

    switch($img->getMimeType()) {

        case 'image/jpg':

            $imageFileName.='.jpg';

            imagejpeg($img->getImageResource(),$imageFilePath.$imageFileName);

            break;

        case 'image/gif':

            $imageFileName.='.gif';

            imagegif($img->getImageResource(),$imageFilePath.$imageFileName);

            break;

        case 'image/png':

            $imageFileName.='.png';

            imagepng($img->getImageResource(),$imageFilePath.$imageFileName);

            break;

    }

    $startColumn = ABC2decimal($startColumn);//由于图片所在位置的列号为字母,转化为数字

    $data[$startRow-1][$startColumn]=$imageFilePath.$imageFileName;//把图片插入到数组中

}

print_r($data);die;

function ABC2decimal($abc){

    $ten = 0;

    $len = strlen($abc);

    for($i=1;$i<=$len;$i++){

        $char = substr($abc,0-$i,1);//反向获取单个字符

        $int = ord($char);

        $ten += ($int-65)*pow(26,$i-1);

    }

    return $ten;

}

以上代码只是处理图片,得到图片路径插入到数组中,如需数据入库,可循环insert,自行处理,打印结果如下:

用php把excel数据导入数据库的更多相关文章

  1. 使用python将excel数据导入数据库

    使用python将excel数据导入数据库 因为需要对数据处理,将excel数据导入到数据库,记录一下过程. 使用到的库:xlrd 和 pymysql (如果需要写到excel可以使用xlwt) 直接 ...

  2. [Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. 如何把excel数据导入数据库

    这里介绍2种把excel数据导入oracle数据库的方法. 1. 在excel中生成sql语句. 1)在数据列的右侧,第一行的任何位置输入="insert into table(xx,yyy ...

  4. C#将Excel数据导入数据库(MySQL或Sql Server)

    最近一直很忙,很久没写博客了.今天给大家讲解一下如何用C#将Excel数据导入Excel,同时在文章最后附上如何用sqlserver和mysql工具导入数据. 导入过程大致分为两步: 1.将excel ...

  5. Excel数据导入数据库

    maven依赖 <!--excel相关依赖--> <dependency> <groupId>org.apache.poi</groupId> < ...

  6. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  7. PHPExcel将Excel数据导入数据库

    <?php //PHPExcel读取导入Excel数据到数据库(2003,2007通用)使用方法: //先用excel2array()方法将excel表中的数据存储到数组,在从遍历二维数组将数据 ...

  8. 将Excel数据导入数据库

    Excel如下,这页工作表名叫“线路” 数据库表如下 using System; using System.Collections.Generic; using System.Linq; using ...

  9. ASP.NET Excel数据导入数据库

    <identity impersonate="true"/> 是指模拟IIS身份验证 導入錯誤時可刪除 protected void btnImport_Click(o ...

  10. 利用poi,jxl将Excel数据导入数据库

    需求:‘需要将本地的Excel中的数据经过验证之后导入数据库,在导入数据库之前在页面上展示出来 思路:将Excel导入存到session里面 去判断有没有不合法数据  如果有阻止提交 工具类: imp ...

随机推荐

  1. 织梦DedeCMS给栏目添加缩略图调用的方法

    织梦DedeCMS的栏目调用仅仅只有文字调用,没有栏目缩略图调用,而我们有时候又需要给栏目添加缩略图,并能够在前台调用,就可以试试通过下面的方法,给栏目添加缩略图. 首先要给栏目数据库表添加一个存储缩 ...

  2. Go语言之依赖管理

    Go语言之依赖管理 Go语言的依赖管理随着版本的更迭正逐渐完善起来. 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面.这就导致了同一个库只能保存一个 ...

  3. -bash: /usr/librxec/grepconf.sh:Nosuch file or directory

    最近修改/etc/profile文件时,不小心在后面添加了source /etc/profile,导致使用xshell登录远程linux的时候出现下面的信息, 一直无法进入linux,将profile ...

  4. C语言 读取配置文件

    配置文件截图: 读取结果截图: 代码转自:http://www.tuicool.com/articles/Zb2iIn 附代码: // ReadConfig.cpp : 定义控制台应用程序的入口点. ...

  5. codeblocks 使用汇总

    codeblocks 使用汇总 http://www.cnblogs.com/-clq/archive/2012/01/31/2333247.html

  6. Pytorch报错:cuda runtime error (59) : device-side assert triggered at /pytorch/aten/src/THC/generic/THCTensorMath.cu:26

    Pytorch报错:cuda runtime error (59) : device-side assert triggered at /pytorch/aten/src/THC/generic/TH ...

  7. 安卓SharedPreferences类的使用

    package com.lidaochen.phonecall; import android.content.Intent; import android.content.SharedPrefere ...

  8. es 启动报错 内存太小

    max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] elastics ...

  9. Async 配置线程池

    需要注意一下 ThreadPoolTaskExecutor  和 Executor  区别 @Configuration public class ExecutorConfig { /** Set t ...

  10. linux基础5-vi文本处理器

    三种模式下各自可以完成的操作: 一般模式:可以完成光标移动.删除单个和整行字.复制和黏贴,通过i.o.a.r这几个命令进入编辑模式 编辑模式:可以输入字符,通过esc返回一般模式 指令模式:读取文件, ...