PHP导入导出Excel代码

一.导入

  导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn。(注意两个文件有引用关系)

<?php
//传入要导入的Excel的文件名
function import_to_DB($filename) {
  require_once'reader.php';
  $data = new Spreadsheet_Excel_Reader();   //创建读取Excel的对象
  $data->setOutputEncoding('utf-8');  //设置读取Excel内容后输出的字符编码
  $data->read("data/Excel/{$filename}.xls");
  $db = mysql_connect('localhost', '用户名', '密码') or die("Could not connect to database."); //连接数据库
  mysql_query("set names 'uft8'"); //输出中文
  mysql_select_db('数据库名'); //选择数据库
  error_reporting(E_ALL ^ E_NOTICE);
  for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    echo $data->sheets[0]['cells'][$i][列数];
    //这里可以把每一行相应列的值插到数据库中,如:
    /*
    $sql="insert "表名" values(对应项...)";
    mysql_query($sql);
    可加上错误判断
    */
  }
?>

总之,能够读出表格中每一行中的相应列$data->sheets[0][行][列]的值,插入操作就好办了。

二.导出

  导出可以利用MIME协议轻松导出表格文件,不用依赖任何组件。按如下格式设置header即可导出Excel,同时浏览器进行下载

header('Content-type: text/html; charset=utf-8');
header("Content-type:application/vnd.ms-excel;charset=UTF-8"); //application/vnd.ms-excel指定输出Excel格式
header("Content-Disposition:filename=表格文件名.xls"); //输出的表格名称

完整代码如下:

<?php
header('Content-type: text/html; charset=utf-8');
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
header("Content-Disposition:filename=表格文件名.xls");
$conn = mysql_connect("localhost","root","数据库密码") or die("不能连接数据库");
mysql_select_db("数据库名", $conn);
mysql_query("set names 'UTF-8'");
$sql="select * from 表名 where 条件";

$result=mysql_query($sql);
echo "表头1\t表头2\t表头3\n";
while($row=mysql_fetch_array($result)){
  echo $row[0]."\t".$row[1]."\t".$row[2]."\n";
}
?>

这里其实\t就是换格,\n就是换行。在一个网页中设置这个php文件的链接,当点击时浏览器会自动把传过来的流保存为Excel文件。

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格

导出类

PHPExcel类导出excel,同时对PHPExcel做了些精简处理,基本上可以满足数据导出excel的功能

代码如下:

<?php
//载入PHPExcel类
require './phpexcel/PHPExcel.php';
//创建一个excel对象实例
$objPHPExcel = new PHPExcel();
//设置文档基本属性
$objProps = $objPHPExcel->getProperties();
$objProps->setCreator("Lao Mao");
$objProps->setLastModifiedBy("Lao Mao");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");
//设置当前的sheet索引,用于后续的内容操作。
//一般只有在使用多个sheet的时候才需要显示调用。
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
$objPHPExcel->setActiveSheetIndex(0);
//设置当前活动sheet的名称
$objActSheet = $objPHPExcel->getActiveSheet();
$objActSheet->setTitle('测试Sheet');
//设置单元格内容www.jb51.net
//这里的数据可以从数据库中读取,然后再做循环处理
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'a1');
$objPHPExcel->getActiveSheet()->SetCellValue('A2', 'a2');
$objPHPExcel->getActiveSheet()->SetCellValue('A3', 'a3');
$objPHPExcel->getActiveSheet()->SetCellValue('A4', 'a4');
$objPHPExcel->getActiveSheet()->SetCellValue('A5', 'a5');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', 'b1');
$objPHPExcel->getActiveSheet()->SetCellValue('B2', 'b2');
$objPHPExcel->getActiveSheet()->SetCellValue('B3', 'b3');
$objPHPExcel->getActiveSheet()->SetCellValue('B4', 'b4');
$objPHPExcel->getActiveSheet()->SetCellValue('B5', 'b5');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', 'c1');
$objPHPExcel->getActiveSheet()->SetCellValue('C2', 'c2');
$objPHPExcel->getActiveSheet()->SetCellValue('C3', 'c3');
$objPHPExcel->getActiveSheet()->SetCellValue('C4', 'c4');
$objPHPExcel->getActiveSheet()->SetCellValue('C5', 'c5');
//输出文档
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
//设置header头部信息,并输出到浏览器
//header('Content-Type: application/vnd.ms-excel');
//header("Content-Disposition:attachment; filename=demo.xls");
//header('Cache-Control: max-age=0');
//$objWriter->save('php://output');
//保存至某一位置
$objWriter->save(dirname(__FILE__) . '/demo.xls');

导入excel的方法:

代码:

<?php
//载入PHPExcel类
include(dirname(__FILE__).'/phpexcel/PHPExcel.php');
$Obj = new PHPExcel_Reader_Excel5();
$Obj->setReadDataOnly(true);
//读取demo.xls文件
$phpExcel = $Obj->load(dirname(__FILE__).'/output.xls');
//获取当前活动sheet
$objWorksheet = $phpExcel->getActiveSheet();
//获取行数
$highestRow = $objWorksheet->getHighestRow();
//获取列数
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
//循环输出数据 www.jb51.net
$data = array();
for($row = 1; $row <= $highestRow; ++$row) {
 for($col = 0; $col < $highestColumnIndex; ++$col) {
 $val = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
 $data[$row][$col] = trim($val);
 }
}
echo '<pre>';
print_r($data);
echo '</pre>';

但是这种方式有缺陷,老版本的excel有个数据上限,最多65536行数据,这时我们就无法通过excel来实现大数据的导出, 但我估计也没几个有这么我数据吧,当然如果有可以考虑使用csv来操作

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • PHP实现导出excel数据的类库用法示例

    本文实例讲述了PHP实现导出excel数据的类库用法.分享给大家供大家参考,具体如下: 今天一个项目要做一个PHP导出数据用excel保存,在网上找到一个本来是想用phpexcel的,后来发现太难了,就换了一个但导出的歌声是XML 类写的很简单,但很实用.只能简单的导出字符串和数字二种格式. 如果你有兴趣,你可以拿去扩充了,基本够用. class Excel_XML { //定于私有变量,顶部标签 private $header = "<?xml version=\"1.0\&q

  • 完美解决phpexcel导出到xls文件出现乱码的问题

    解决方法如下所示: <?php include 'global.php'; $ids = $_GET['ids']; $sql = "select * from crm_cost_end where id in ( {$ids} )"; $result = $db->findAll($sql); //echo $result[1]['sn']; //创建一个excel对象 $objPHPExcel = new PHPExcel(); // Set properties $o

  • PHP导出Excel实例讲解

    本次实现PHP导出Excel文件使用的是PHP开源程序PHPExcel,部分关键代码分享给大家,具体内容如下 <?php error_reporting(E_ALL); date_default_timezone_set('Asia/Shanghai'); require_once './Classes/PHPExcel.php'; $data=array( 0=>array( 'id'=>1001, 'username'=>'张飞', 'password'=>'123456

  • php原生导出excel文件的两种方法(推荐)

    第一种方法: $filename='文件名称'; $filetitle='你的标题'; if($_POST){ set_time_limit(10000): $title = ''; ini_set('memory_limit','300M'); header('Content-Type: application/vnd.ms-excel;charset=utf-8'); $name = $title.".xls"; header('Content-Disposition: attac

  • PHP使用PHPexcel导入导出数据的方法

    本文实例讲述了PHP使用PHPexcel导入导出数据的方法.分享给大家供大家参考,具体如下: 导入数据: <?php error_reporting(E_ALL); //开启错误 set_time_limit(0); //脚本不超时 date_default_timezone_set('Europe/London'); //设置时间 /** Include path **/ set_include_path(get_include_path() . PATH_SEPARATOR . 'http:

  • PHP导出带样式的Excel示例代码

    前言 在大家工作中做导出的时候,需要导出自定义的表格或嫌弃导出的Excel格式太难看了.这时候就需要设置颜色.字号大小.加粗.合并单元格等等.这篇文章通过实例告诉大家怎么做,下面来一起看看. 先来看看效果图: 实例代码 PHP代码: /** * 导出文件 * @return string */ public function export() { $file_name = "成绩单-".date("Y-m-d H:i:s",time()); $file_suffix

  • PHP导入导出Excel代码

    一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reader(); //创建读取Excel的对象 $data->setOutputEncoding('utf-8'); //设置

  • ASP.Net MVC利用NPOI导入导出Excel的示例代码

    什么是NPOI 该项目是位于http://poi.apache.org/的POI Java项目的.NET版本.POI是一个开源项目,可以帮助您读取/写入xls,doc,ppt文件.它有着广泛的应用.本文给大家介绍ASP.Net MVC利用NPOI导入导出Excel的问题. 因近期项目遇到所以记录一下: 首先导出Excel: 首先引用NPOI包 (Action一定要用FileResult) /// <summary> /// 批量导出本校第一批派位学生 /// </summary>

  • JavaScript实现导入导出excel的示例代码

    目录 Excel导入 html代码 js代码 Excel导出 html代码 js代码 Excel导入 html代码 <button style={{ color: '#1890ff', fontSize: '14px', cursor: 'pointer' }} onClick={() => { upFile(); }} > 导入 </button> <input id="upFile" type="file" style={{

  • Asp.Net使用Npoi导入导出Excel的方法

    asp.net针对Excel文件的导入与导出是非常常见的功能之一.本文实例讲述了Asp.Net使用Npoi导入导出Excel的方法.分享给大家供大家参考之用.具体方法如下: 在使用Npoi导出Excel的时候,服务器可以不装任何office组件,一般在导出时用到Npoi导出Excel文件,所导Excel也符合规范,打开时也不会有任何文件损坏之类的提示.但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的. 一.Npoi导出/下载Excel 具体功能代码

  • C#导入导出Excel数据的两种方法

    本文为大家分享了C#导入导出Excel数据的具体代码,供大家参考,具体内容如下 注:对于实体类对象最好新建一个并且继承原有实体类,这样可以将类型进行修改: 方法一:此种方法是用EPPLUS中的FileInfo流进行读取的(是不是流我还真不太了解,若有懂得请留言,非常感谢了) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tas

  • 详解poi+springmvc+springjdbc导入导出excel实例

    工作中常遇到导入导出excel的需求,本獂有一简答实例与大家分享. 废话不多说, 1.所需jar包: 2.前端代码: ieport.jsp: <%@page import="java.util.Date"%> <%@ page language="java" contentType="text/html; charset=utf-" pageEncoding="utf-"%> <!DOCTYPE

  • php导入导出excel实例

    这里实现的PHP导入导出excel功能用到的是开源PHPExcel,执行下面的操作之前请先下载该类库文件,官方网站:http://www.codeplex.com/PHPExcel,官网案例代码很多,导出pdf什么的都有,这里主要介绍PHP导入导出excel的功能,导出excel文件是office2007格式,同时兼容2003. php导入excel导入的excel文件的数据格式,截图如下:下面是将该excel文件的数据导入到数据库的具体代码: 复制代码 代码如下: <?phprequire_o

  • python智联招聘爬虫并导入到excel代码实例

    这篇文章主要介绍了python智联招聘爬虫并导入到excel代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 写了一个智联招聘的爬虫,只要输入职位关键字,就能快速导出智联招聘上的数据,存在excel表里- import requests,openpyxl #建立excel表 joblist=[] wb=openpyxl.Workbook() sheet=wb.active sheet.title='智联招聘数据' sheet['A1']=

  • Java实现导入导出Excel文件的方法(poi,jxl)

    目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel直接上代码: 一,POI POI是apache的项目,可对微软的Word,Excel,Ppt进行操作,包括office2003和2007,Excl2003和2007.poi现在一直有更新.所以现在主流使用POI. xls: pom: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi

  • Springboot实现导入导出Excel的方法

    目录 一.添加poi的maven依赖 二.自定义注解(Excel属性标题.位置等) 三.CustomExcelUtils编写 四.定义导出实体类 五.Controller层代码编写 一.添加poi的maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> </d

随机推荐