PHP如何导出当前页面中的表格至Excel

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。

1. 以.csv格式读取

将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。

优点:跨平台,效率比较高、可以读写。

缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。

length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。

enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。

注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

当然也可以自己手动分析字符串。

还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。

2. ODBC链接数据源

优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。

缺点:值支持windows服务器

3. PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件

常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

不过我下载回来的 (版本 2009-03-30),有两点要注意:

reader.php 中的下面这行要修改

将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

改为 require_once ‘oleread.inc’;

example.php 中

修改 $data->setOutputEncoding(’CP1251′);

为 $data->setOutputEncoding(’CP936′);

example2.php 中

修改 nl2br(htmlentities($data->sheets[$sheet]['

php导入excel 怎么获取excel表格数据

常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点。个人推荐用第三种方法,因为它可以跨平台使用。

1. 以.csv格式读取

将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别。

优点:跨平台,效率比较高、可以读写。

缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。

PHP有自带的分析.csv函数:fgetcsv

array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )

handle 一个由 fopen()、popen() 或 fsockopen() 产生的有效文件指针。

length (可选)必须大于 CVS 文件内最长的一行。在 PHP 5 中该参数是可选的。如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。

delimiter (可选)设置字段分界符(只允许一个字符),默认值为逗号。

enclosure (可选)设置字段环绕符(只允许一个字符),默认值为双引号。该参数是在 PHP 4.3.0 中添加的。 和 fgets() 类似,只除了 fgetcsv() 解析读入的行并找出 CSV 格式的字段然后返回一个包含这些字段的数组。

fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。

注意: CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。

当然也可以自己手动分析字符串。

还可以利用fputcsv函数将行格式化为 CSV 并写入文件指针。

2. ODBC链接数据源

优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。

缺点:值支持windows服务器

3. PHP自定义类

优点:跨平台。某些类支持写操作。支持.xls二进制文件

常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。

phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。

不过我下载回来的 (版本 2009-03-30),有两点要注意:

reader.php 中的下面这行要修改

将 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;

改为 require_once ‘oleread.inc’;

example.php 中

修改 $data->setOutputEncoding(’CP1251′);

为 $data->setOutputEncoding(’CP936′);

example2.php 中

修改 nl2br(htmlentities($data->sheets[$sheet]['

php如何实现程序导入excel表格数据到sql server

我以前给客户录入用户时也涉及过excel数据导入的问题,当时,我是把excel另存为csv文件,然后再用php读取csv文件

用php如何把查询到的数据导进excel表格中去呢

参考代码如下:

// 1.引用ExcelReader类文件

require_once 'Excel/reader.php';

// 2.实例化读取Excel的类

$data = new Spreadsheet_Excel_Reader();

// 3.设置输出编码

$data->setOutputEncoding('utf-8');

// 4.读取指定的excel

$data->read('test.xls');

// 5.循环输出每一行数据,这里读取的是Excel的第一个Sheet表格

// sheets[0]['numRows']代表行数

// sheets[0]['numCols']代表列数

for ($i = 1; $i sheets[0]['numRows']; $i ) { // 遍历行

for ($j = 1; $j sheets[0]['numCols']; $j ) { // 遍历列

echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";

}

echo "\n";

}

?>

如何用php实现将excel导入到数据库中

thinkphp3.2和phpexcel导入最基本用法

先整个最基础的代码,理解了这个,后面的就非常简单了

$file_name= './Upload/excel/123456.xls';

import("Org.Util.PHPExcel");

import("Org.Util.PHPExcel.IOFactory");

$objReader = \PHPExcel_IOFactory::createReader('Excel5');

$objPHPExcel = $objReader->load($file_name,$encode='utf-8');

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

$highestRow = $sheet->getHighestRow(); // 取得总行数

$highestColumn = $sheet->getHighestColumn(); // 取得总列数

$s = $objPHPExcel->getActiveSheet()->getCell("A2")->getValue();

表格内容:

再给大家整个一点难度的,先说下思路。

1.上传excel文件,得到它的地址

2.写个处理exl的function,即可

实例代码演示:

public function upload(){

$files = $_FILES['exl'];

// exl格式,否则重新上传

if($files['type'] !='application/vnd.ms-excel'){

$this->error('不是Excel文件,请重新上传');

}

// 上传

$upload = new \Think\Upload();// 实例化上传类

$upload->maxSize   =     3145728 ;// 设置附件上传大小

$upload->exts      =     array('xls');// 设置附件上传类型

$upload->rootPath  =     './Upload/'; // 设置附件上传根目录

$upload->savePath  =     'excel/'; // 设置附件上传(子)目录

//$upload->subName   =     array('date', 'Ym');

$upload->subName   =     '';

// 上传文件

$info   =   $upload->upload();

$file_name =  $upload->rootPath.$info['exl']['savepath'].$info['exl']['savename'];

$exl = $this->import_exl($file_name);

// 去掉第exl表格中第一行

unset($exl[0]);

// 清理空数组

foreach($exl as $k=>$v){

if(empty($v)){

unset($exl[$k]);

}

};

// 重新排序

sort($exl);

$count = count($exl);

// 检测表格导入成功后,是否有数据生成

if($count<1){

$this->error('未检测到有效数据');

}

// 开始组合数据

foreach($exl as $k=>$v){

$goods[$k]['goods_sn'] = $v;

// 查询数据库

$where['goods_sn'] = array('like','%'.$v.'%');

$res = M('goods')->where($where)->find();

$goods[$k]['goods_name'] = $res['goods_name'];

$goods[$k]['goods_thumb'] = $res['goods_thumb'];

if($res){

// 是否匹配成功

$goods[$k]['is_match']    = '1';

$f  = 1;

}else{

// 匹配失败

$goods[$k]['is_match']    = '0';

$w  = 1;

}

}

// 实例化数据

$this->assign('goods',$goods);

//print_r($f);

// 统计结果

$total['count'] = $count;

$total['success'] = $f;

$total['error'] = $w;

$this->assign('total',$total);

// 删除Excel文件

unlink($file_name);

$this->display('info');

}

/* 处理上传exl数据

* $file_name  文件路径

*/

public function import_exl($file_name){

//$file_name= './Upload/excel/123456.xls';

import("Org.Util.PHPExcel");   // 这里不能漏掉

import("Org.Util.PHPExcel.IOFactory");

$objReader = \PHPExcel_IOFactory::createReader('Excel5');

$objPHPExcel = $objReader->load($file_name,$encode='utf-8');

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

$highestRow = $sheet->getHighestRow(); // 取得总行数

$highestColumn = $sheet->getHighestColumn(); // 取得总列数

for($i=1;$i

$data[] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue();

}

return $data;

}

有问题一定要及时弄清楚

php导入excel表格数据,php页面导入excel表格数据-php导入excel 怎么获取excel表格数据...相关推荐

  1. 股票数据尤其是从雅虎财经yahoo finance或者google finance中获取的股票数据中Adj close是什么意思?

    我们通过雅虎财经的接口获取股票日线数据的时候,经常获取的数据集内容,如下: Date日期,Open开盘价,High最高价,Low最低价,Close收盘价,Adj Close调整后的收盘价, Volum ...

  2. layui多个数据表格共存一个页面处理

    layui多个数据表格共存一个页面处理 1.html代码 2.jq代码 3.数据表格重载方式 今天在做后台时,遇到一个棘手的问题,就是layui的数据表格如果两个表格在一个页面,每个表格有一个搜索查询 ...

  3. Servlet获取Excel中数据的两种方式

    Servlet解析Excel文件的两种方式 简单分享一下Servlet通过解析Excel文件得到其中数据的两种方式 第一种:前端获取 思路:通过layui的第三方插件 layui.excel 解析ex ...

  4. python word中表格字体设置_利用Python-docx 读写 Word 文档中的正文、表格、段落、字体样式等...

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  5. 转:量化交易零基础入门教程之——获取典型常用数据

    感谢原作者:JoinQuant-TWist 转自:JoinQuant 重要提示:聚宽提供了非常好的数据库接口,愁没研究数据的小伙伴可以加微信(jqdata01)详细了解 原文链接:https://ww ...

  6. python量化交易:Joinquant_量化交易基础【七】:获取典型常用数据

    本文是量化交易零基础入门教程的第七篇. 摘要 聚宽数据 获取指数成分股 获取股票行情数据 获取股票财务数据 自测与自学 聚宽数据 在聚宽数据这个页面可以看到聚宽平台集成好的各大类数据,如下图,点击可以 ...

  7. 微信小程序获取Onenet温湿度数据并控制灯亮灭

    ​ 其实之前就写过类似的文章,但是看过我博客的朋友就知道,我是先写微信小程序获取onenet,然后再写esp32上云到onenet.一篇是ESP32-C3通过MQTT协议把温湿度上传到OneNet平台 ...

  8. 聚宽 get_price 多个股票数据_量化交易入门教程,获取典型常用数据

    获取典型常用数据 摘要 聚宽数据 获取指数成分股 获取股票行情数据 获取股票财务数据 自测与自学 聚宽数据 在聚宽数据这个页面可以看到聚宽平台集成好的各大类数据,如下图,点击可以查看详情与用法. 但实 ...

  9. PHP获取表单数据的方法有几种,如何实现PHP获取表单数据与HTML嵌入PHP脚本

    如何实现PHP获取表单数据与HTML嵌入PHP脚本 导语:如何实现PHP获取表单数据与HTML嵌入PHP脚本,下面是小编给大家提供的操作讲解,大家可以参考阅读,更多详情请关注应届毕业生考试网. 常用的 ...

最新文章

  1. 【运营】运营必看!如何吸引用户主动的参与活动?
  2. 从bash函数中返回任意值
  3. 几种常用的清除浮动方法(一)
  4. python 基因序列提取_科学网—简单的Python脚本提取对应位置基因序列(fasta文件) - 王彬忠的博文...
  5. 基于gulp编写的一个简单实用的前端开发环境
  6. Sentinel服务熔断只配置blockHandler_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0051
  7. intval0.57100 php_关于PHP浮点数之 intval((0.1+0.7)*10) 为什么是7
  8. 8位十六进制转换32位十六进制_网络中的数制系统--二进制十六进制与十进制之间的相互转换...
  9. 一款原型设计软件——墨刀的介绍
  10. 华为手机一键解锁工具箱下载 | 华为手机解BL锁软件: 支持解锁bootloader,刷写recovery功能
  11. 【GMSK+FPGA】基于verilog的GMSK调制系统设计
  12. 微信小程序 添加分割线
  13. oracle数据库mgmt,19c rac数据库如何添加mgmt
  14. linux nfs性能差,linux – 奇怪的nfs性能:1个线程比8个好,8个好于2个!
  15. win7 mysql 管理员权限_win7 管理员权限
  16. stc单片机“全自动下载”(程序版)
  17. 概率论抽球 模型 汇总
  18. 创业之路 - 魏杰:下一个 10 年,将造就一批新富翁
  19. 世界杯快结束了,VAR的故事才刚刚开始
  20. 出现了,PPT 制作新方式

热门文章

  1. 2021 年4月数据库流行度排行榜出炉!Snowflake 和 Clickhouse上升迅速!
  2. 每日一皮:“快准恨”的程序员叠衣法,还不快学起来?
  3. 原来这就是Java代码生成器的原理啊,太简单了
  4. 使用 Prometheus 监控 Redis
  5. visual studio 添加源码目录
  6. Pytorch 计算参数量与计算量Flops
  7. TeamViewer 14 on Nvidia Jetson TX2
  8. 深度学习 | 反卷积/转置卷积 的理解 transposed conv/deconv
  9. python ffmpeg pyav
  10. access检查为空函数