下面的代码是使用PHPExcel 对多个表格数据进行读取, 然后整合的写入新的表格的方法!!!代码有点粗糙 , 多多保函!!!

这里有些地方注意下,如果你的表格数据过大, 一定要记得修改php.ini里面的相关配置:

file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值。默认为2M
post_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。

进一步配置以下的参数
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m

  1 <?php
  2
  3 include_once '../PHPExcel/PHPExcel/IOFactory.php';
  4 include_once '../PHPExcel/PHPExcel.php';
  5
  6 function getOrderInfo($order_file,$number)
  7 {
  8     try {
  9         $order_file = iconv( 'UTF-8', 'GBK', $order_file);
 10         $inputFileType = PHPExcel_IOFactory::identify($order_file);
 11         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
 12         $objPHPExcel = $objReader->load($order_file);
 13     } catch(Exception $e) {
 14         die('加载文件发生错误:'.pathinfo($order_file,PATHINFO_BASENAME).':'.$e->getMessage());
 15     }
 16
 17     // 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧
 18     $sheet = $objPHPExcel->getSheet($number);
 19     $highestRow = $sheet->getHighestRow();
 20     $highestColumn = $sheet->getHighestColumn();
 21
 22     $data = [];
 23     // 获取一行的数据
 24     for ($row = 2; $row <= $highestRow; $row++) {
 25         $data[] = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
 26     }
 27
 28     return $data;
 29 }
 30 function merge_excel()
 31 {
 32     $order_data = getOrderInfo('./orderDetailList.xls',0);
 33     $goods_data = getOrderInfo('./orderList.xls',0);
 34     $goods_info = getOrderInfo('./order.xlsx',1);
 35     $count = count($goods_data);
 36     $goods_count = count($goods_info);
 37     $array = [];
 38
 39     foreach ($order_data as $key => $value)
 40     {
 41         $m = 0;
 42         for ($i = 0; $i < $count; $i++)
 43         {
 44             if($value[0][0] == $goods_data[$i][0][0])
 45             {
 46                 $m += 1;
 47                 if($value[0][25] != '')
 48                 {
 49                     $total = $goods_data[$i][0][3];
 50                     if($m == 1)
 51                     {
 52                         $arr  = [
 53                             0 => $value[0][14],
 54                             1 => ltrim($value[0][18],"'"),
 55                             2 => $value[0][15],
 56                             3 => '',
 57                             4 => $total,
 58                             5 => $value[0][25].'/TB订单: '.$value[0][0].'/'.$value[0][28],
 59                             6 => '',
 60                             7 => '',
 61                             8 => $value[0][8],
 62                             9 => $value[0][6]
 63                         ];
 64                     }else{
 65                         $arr  = [
 66                             0 => '',
 67                             1 => '',
 68                             2 => '',
 69                             3 => '',
 70                             4 => $total,
 71                             5 => '',
 72                             6 => '',
 73                             7 => '',
 74                             8 => '',
 75                             9 => ''
 76                         ];
 77                     }
 78                     if($goods_data[$i][0][9] != 'null')
 79                     {
 80                         $sku = explode(';',$goods_data[$i][0][9]);
 81                         foreach ($sku as $k => $item)
 82                         {
 83                             $code_arr_1 = explode('*',$item);
 84                             $number = $code_arr_1[1];
 85                             if($number)
 86                             {
 87                                 $total = $number * $goods_data[$i][0][3];
 88                             }
 89                             $goods_code = '';
 90                             if($k == 0)
 91                             {
 92                                 $code = substr($code_arr_1[0],strpos($code_arr_1[0], 'D') + 1);
 93                                 for ($j = 0; $j < $goods_count; $j++)
 94                                 {
 95                                     if($code == $goods_info[$j][0][2])
 96                                     {
 97                                         $goods_code = $goods_info[$j][0][1];
 98                                     }
 99                                 }
100                                 $arr[3] = $goods_code;
101                                 $arr[4] = $total;
102                                 $array[] = $arr;
103                             }else{
104                                 for ($j = 0; $j < $goods_count; $j++)
105                                 {
106                                     if($code_arr_1[0] == $goods_info[$j][0][2])
107                                     {
108                                         $goods_code = $goods_info[$j][0][1];
109                                     }
110                                 }
111                                 $array[] = [
112                                     0 => '',
113                                     1 => '',
114                                     2 => '',
115                                     3 => $goods_code,
116                                     4 => $total,
117                                     5 => '',
118                                     6 => '',
119                                     7 => '',
120                                     8 => '',
121                                     9 => ''
122                                 ];
123                             }
124                         }
125                     }else{
126                         $array[] = $arr;
127                     }
128                 }
129
130             }
131         }
132     }
133     $PHPExcel = new \PHPExcel();
134     $PHPExcel->getProperties()->setCreator("lzp")->setTitle("xxxxxxxx有限公司")->setKeywords("订单数据");
135     $PHPExcel->setActiveSheetIndex(0)->setTitle("订单列表");
136     $PHPExcel->getActiveSheet()->setCellValueExplicit('A1', "收件人姓名", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('A')->setWidth(50);
137     $PHPExcel->getActiveSheet()->setCellValueExplicit('B1', "收件人电话", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('B')->setWidth(20);
138     $PHPExcel->getActiveSheet()->setCellValueExplicit('C1', "收件人地址", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('C')->setWidth(20);
139     $PHPExcel->getActiveSheet()->setCellValueExplicit('D1', "商品条码", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('D')->setWidth(20);
140     $PHPExcel->getActiveSheet()->setCellValueExplicit('E1', "商品数量", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('E')->setWidth(20);
141     $PHPExcel->getActiveSheet()->setCellValueExplicit('F1', "订单备注", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('F')->setWidth(20);
142     $PHPExcel->getActiveSheet()->setCellValueExplicit('G1', "身份证号码", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('G')->setWidth(20);
143     $PHPExcel->getActiveSheet()->setCellValueExplicit('H1', "省市区代码(不填)", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('H')->setWidth(20);
144     $PHPExcel->getActiveSheet()->setCellValueExplicit('I1', "商品金额(业务员必填)", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('I')->setWidth(20);
145     $PHPExcel->getActiveSheet()->setCellValueExplicit('J1', "运费金额(业务员必填)", \PHPExcel_Cell_DataType::TYPE_STRING)->getColumnDimension('J')->setWidth(20);
146     foreach ($array as $k => $val)
147     {
148         $num = $k + 2;
149         $PHPExcel->getActiveSheet()->setCellValueExplicit("A{$num}", "{$val[0]}", \PHPExcel_Cell_DataType::TYPE_STRING);
150         $PHPExcel->getActiveSheet()->setCellValueExplicit("B{$num}", "{$val[1]}", \PHPExcel_Cell_DataType::TYPE_STRING);
151         $PHPExcel->getActiveSheet()->setCellValueExplicit("C{$num}", "{$val[2]}", \PHPExcel_Cell_DataType::TYPE_STRING);
152         $PHPExcel->getActiveSheet()->setCellValueExplicit("D{$num}", "{$val[3]}", \PHPExcel_Cell_DataType::TYPE_STRING);
153         $PHPExcel->getActiveSheet()->setCellValueExplicit("E{$num}", "{$val[4]}", \PHPExcel_Cell_DataType::TYPE_STRING);
154         $PHPExcel->getActiveSheet()->setCellValueExplicit("F{$num}", "{$val[5]}", \PHPExcel_Cell_DataType::TYPE_STRING);
155         $PHPExcel->getActiveSheet()->setCellValueExplicit("G{$num}", "{$val[6]}", \PHPExcel_Cell_DataType::TYPE_STRING);
156         $PHPExcel->getActiveSheet()->setCellValueExplicit("H{$num}", "{$val[7]}", \PHPExcel_Cell_DataType::TYPE_STRING);
157         $PHPExcel->getActiveSheet()->setCellValueExplicit("I{$num}", "{$val[8]}", \PHPExcel_Cell_DataType::TYPE_STRING);
158         $PHPExcel->getActiveSheet()->setCellValueExplicit("J{$num}", "{$val[9]}", \PHPExcel_Cell_DataType::TYPE_STRING);
159     }
160     $objWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007');
161     $objWriter->save(time().'.xlsx');
162 }
163 merge_excel();

转载于:https://www.cnblogs.com/fqyb/p/9243827.html

使用PHPExcel 对表格进行,读取和写入的操作。。。。相关推荐

  1. Java 通过POI 操作excel表格:读取、写入

    Java操作excel表格是很常见的,在下面的例子中我将展示使用Java如何对excel进行读取和写入操作.(我是在ssm中实现的) 一.导入依赖 (如果是在普通Java项目中需要导入相应jar包) ...

  2. c语言中以追加只写方式打开文本文件,C语言中打开文件读取,写入的操作

    #include#includeint main(){ //打开文件并以读取的方式 FILE* file = fopen("E://1.txt","rt"); ...

  3. Excel表格数据该怎么读取和写入之——xlsread函数和xlswrite函数

    Excel表格数据该怎么读取和写入之--xlsread函数和xlswrite函数 excel作为一种数据处理和管理软件,在使用MATLAB时,经常需要对Excel进行读取和写入数据操作. 新人小白,欢 ...

  4. java连接Excel数据库读取,写入,操纵Excel表格

    java连接Excel数据库读取,写入,操纵Excel表格 (2009-11-15 14:21:03) 转载 标签: java excel 连接 杂谈 分类:技术文档 java连接MicroSoft ...

  5. python3读取excel数据-Python3读取和写入excel表格数据的示例代码

    python操作excel主要用到 xlrd 和 xlwt 这两个库,xlrd读取excel表格数据, 支持 xlsx和xls格式的excel表格 :xlwt写入excel表格数据: 一.python ...

  6. 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部

    日常工作中表格处理时非常令人头疼的一个部分, 概念 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本 格式,用以存储表 ...

  7. JAVA读取、写入Excel表格(含03版)

    引言 工作中可能会遇到对Excel读取和写入,如果我们自己手动写的话,会很麻烦,但是Apache中有poi工具类.poi工具类封装好了对于Excel读取和写入,我们需要用的时候,直接调用该方法就好了. ...

  8. python 列表写入excel_python怎么读取和写入excel表格

    最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理.但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理.以前正好在一本书上看 ...

  9. 【Pandas入门教程】如何读取和写入表格数据

    如何读取和写入表格数据 来源:Pandas官网:https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 文章 ...

最新文章

  1. go系列(5)- beego自己写controller
  2. 使用Python,OpenCV检测摄像机到标记对象的距离
  3. html怎么一段时间把网页背景更换_汽车轮毂多少公里更换一次?受到磕碰必须更换吗?...
  4. 4.5 matlab三维曲面(mesh、fmesh、meshc、meshz、surf、fsurf、surfc、surfl)
  5. 罗斯霍曼理工学院计算机毕业生,全美最强STEM大学,了解一下?
  6. 单位脉冲信号与单位冲激信号的区别
  7. 多思计组原理虚拟实验室_先睹为快!汽院实验室组团来亮相_搜狐汽车
  8. wp自定义帖子没标签_ofollow标签的作用有重大变化
  9. OpenShift 4 - 下载OpenShift项目中的ImageStream
  10. 引物设计软件_你的引物设计进行得如何了?这份PCR引物设计及软件使用技巧供你参考...
  11. Centos 7 学习加入用户
  12. linux 内核头文件、内核库文件
  13. 唯品会 Dragonfly 日志系统的 Elasticsearch 实践
  14. 浅析APP应用内及新媒体类推广渠道
  15. 国人劝酒经典用语大全
  16. gogs搭建git服务教程
  17. C语言讲义——开发工具Dev C++
  18. Oracle ClusterwarePRCT-1011 : Failed to run oifcfg. Detailed error: null
  19. (详细总结)python爬取 163收件箱邮件内容,收件箱列表的几种方法(urllib, requests, selenium)
  20. UE4接入Android第三方库1——框架配置

热门文章

  1. PHP解决方案@黑名单过滤
  2. node.js(一)
  3. hibernate中多对多分解成一对多,
  4. 艾伟_转载:探索.Net中的委托
  5. 智能合约语言Solidity Solidity API
  6. 放大 旋转 css3,CSS3详解:transform 的旋转、旋转放大、放大、移动
  7. jQuery元素内容操作的方法有多少种?
  8. You can't specify target table for update in FROM clause
  9. 69亿美元英伟达史上最大收购!这家基金又赢了
  10. Unity3D笔记 GUI 一