服务热线 400-660-8066

广州网站建设
首页 站内资讯

广州网站建设

站内资讯
广州网站建设 / 站内资讯 / 行业资讯 / 正文

网站制作之PhpExcl数据批量导入导出

来源: All文章
发布时间:2023-03-31 17:02:47

  1、所用的框架是Thinktp框架

  2、所用插件PHPExcel

  将我们的下载的PHPExcel放入ThinkPHP\Library\Vendor中具置看自身实际情况

  导入读取excl表格vendor('PHPExcel.PHPExcelUser');//引用文件

  $excel=new\PHPExcelUser($file);//打开$fileexcl文件;

  $data=$excel-excelImport(0);//0代表从第一行开始

  导入后通过循环对数据进行处理和保存;

  导出数据$excel=new\PHPExcelUser($FileName);//这里的$FileName是文件的导出名称;

  $excel-excelExport($data,$title);//这里$data为数据,$title为表格的标题;

  导入导出比较简单,这里整理了一些遇到的问题:

  导入时间问题在导入表格中的时间格式需要转换一下,转换函数如下:

  functionexcelTime($date,$time=false){

  if(function_exists('GregorianToJD')){

  if(is_numeric($date)){

  $jd=GregorianToJD(1,1,1970);

  $gregorian=JDToGregorian($jd+intval($date)-25569);

  $date=explode('/',$gregorian);

  $date_str=str_pad($date[2],4,'0',STR_PAD_LEFT)

  .-.str_pad($date[0],2,'0',STR_PAD_LEFT)

  .-.str_pad($date[1],2,'0',STR_PAD_LEFT)

  .($time?00:00:00:'');

  return$date_str;

  }

  }else{

  $date=$date25568?$date+1:25569;

  /*TherewasabugifConvertingdatebefore1-1-1970(tstamp0)*/

  $ofs=(70*365+17+2)*86400;

  $date=date(Y-m-d,($date*86400)-$ofs).($time?00:00:00:'');

  }

  return$date;

  }

  这样就能到就是一个标准的时间格式,不然就是一个数字(非时间戳);

  长数字字符串在表格中被转换成了科学计数法的数字最简单的方法在字符串前面加个空格或者用

  $objActSheet-setCellValueExplicit('A1','330602198804224688',PHPExcel_Cell_DataType::TYPE_STRING);

  将a1列的定义为字符串

  Unknowncodepage:10008PHPExcel_Shared_CodePage::NumberToName(%d)PHPExcel/Shared/CodePage.php98break()原因是NumberToName()方法中没有10008对应的情况处理,所以会抛出Unknowncodepage:10008异常。

  找到PHPExcel/Shared/CodePage.php文件添加

  case10008:return'MAC';break;//在mac苹果系统下面会出现这个问题

  四、下载出来乱码情况一般是缓冲问题

  ob_end_clean();//清除缓冲区,避免乱码

  vendor('PHPExcel.PHPExcelUser');

  $file=.'/cs.xlsx';//这是路径

  $excel=new\PHPExcelUser($file);

  $data=$excel-excelImport(1);

  //excel表导出

  ob_end_clean();//清除缓冲区,避免乱码

  header(Content-type:text/html;charset=utf-8);

  vendor('PHPExcel.PHPExcelUser');

  $file='cs.xlsx';

  $excel=new\PHPExcelUser($file);

  $data=array();//数据二维数组

  $title=array();//数据标题一维数组

  $excel-excelExport($data,$title);

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-8066

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr