一、导入这其中show_msg和logFile是自定义函数
/**
* 方法名 : excelToTable
* 作用 : 【私有】将excel数据导入数据表中
* @param1 file用户上传的文件信息
* @param2 tableid用来区别是哪张表 1-statistics_rawdata_pct 2-statistics_rawdata_apply 3-statistics_rawdata_auth 4-statistics_rawdata_valid
* @param3 month_number导入的数据属于哪一期的 比如
* @param4 table_head用来判断excel表格是否有表头默认有
* @date : 2015/11/26
* @author : dingling
*/private function excelToTable($file,$tableid,$month_number,$table_head=1){if( !empty($file[ 'name' ] )){
$file_types = explode ( " . " , $file[ 'name' ] );
$excel_type = array( 'xls' , 'csv' , 'xlsx' );
//判断是不是excel文件if ( !in_array(strtolower(end($file_types)) ,$excel_type)){
$this->show_msg( "不是Excel文件重新上传", "/search/patentStatistics/uploadRawdata") ;
}
//设置上传路径
$savePath = _WWW_ . 'www/tmp/' ;
//以时间来命名上传的文件
$str = date ( 'Ymdhis' );
$file_name = $str. " . " .end($file_types) ;
//是否上传成功
$tmp_file = $file[ 'tmp_name' ] ;if ( !copy($tmp_file,$savePath.$file_name)){
$this->show_msg( "上传失败" , "/search/patentStatistics/uploadRawdata" );
}if($tableid=="1" ){
$rawdata_obj = $this->rawdata_pctmodel;
}elseif($tableid=="2"){
$rawdata_obj = $this->rawdata_applymodel;
}elseif($tableid=="3"){
$rawdata_obj = $this->rawdata_authmodel;
}elseif($tableid=="4"){
$rawdata_obj = $this->rawdata_validmodel;
}else{
$this->show_msg( "您要导入的数据表不存在 ", "/search/patentStatistics/uploadRawdata") ;
}if($rawdata_obj)
$fields = $rawdata_obj->returnFields() ;else
$this->show_msg( "未能指定明确的表 ", "/search/patentStatistics/uploadRawdata") ;
//定义导入失败记录的文档
$logfile = $savePath.$str. ' .txt' ;
//读取excel存成数组该数组的key是从1开始
$res = $this->excelToArray($savePath.$file_name,end($file_types));
//echo ;exit;
//如果有表头则过滤掉第一行if($table_head)unset($res[1] );
//循环写入不一次性写入防止有错误的记录错误记录会记录下第一个字段到txt文档中去foreach($res as $k =>$v){foreach($fields as $key=>$val){
if($v[$key]===null){
$v[$key] = 'null' ;
}
$data[$val] = $v[$key] ;
}
//该字段比较特殊必须导入表中都有该字段
$data[ 'month_number' ] = $month_number;
$result = $rawdata_obj->addSave($data) ;unset($data);if( !$result){
$this ->logFile($logfile,$v[0] );
}
}if(file_get_contents($logfile))return $logfile;elsereturn true;
}
}
/**
* 方法名 : excelToArray
* 作用 : 【私有】将excel数据转换成数组
* @param1 filename excel文件名
* @param2 filetype excel格式xls、 xlsx、 csv
* @param3 encode编码格式默认utf8
* @return 返回2维数组最小的key为1
* @date : 2015/11/26
* @author : dingling
*/private function excelToArray($filename,$filetype,$encode='utf-8' ){if(strtolower($filetype)=='xls' ){
$objReader = PHPExcel_IOFactory: :createReader( ' Excel5' );
}elseif(strtolower($filetype)=='xlsx' ){
$objReader = PHPExcel_IOFactory: :createReader( ' Excel2007' );
}elseif(strtolower($filetype)=='csv' ){
$objReader = PHPExcel_IOFactory: :createReader( 'CSV' );
}
$objReader->setReadDataOnly(true) ;
$objPHPExcel = $objReader->load($filename);
$objWorksheet = $objPHPExcel->getActiveSheet() ;
$highestRow = $objWorksheet->getHighestRow() ;
$highestColumn = $objWorksheet->getHighestColumn() ;
$highestColumnIndex = PHPExcel_Cell: :columnIndexFromString($highestColumn) ;
$excelData = array() ;for ($row = 1; $row <= $highestRow; $row++) {for ($col = 0; $col < $highestColumnIndex; $col++){
$excelData[$row] [ ] =(string)$objWorksheet->getCellByColumnAndRow($col, $row) ->getValue() ;
}
}return $excelData;
}
二、导出该功能支持页面上html中table表格直接导出
1、前端代码
<!doctype html>
<html>
<head>
<title>专利数据检索平台2015年08月</title>
<meta charset="utf-8" />
<meta name="keywords" content="北京市知识产权信息服务平台" />
<meta name="description" content="专利数据检索平台北京市知识产权信息服务平台"/>
<meta name="viewport" content="width=device-width, initial-scale=1" /><meta property="wb:webmaster" content="3c67ef6a26cfe34e" />
<link rel="apple-touch-icon-precomposed" href=" " />
<meta name="baidu-site-verification" content="5fNm7bQabR" />
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<script type="text/javascript" src="/js/placeholder.js"></script>
<script type="text/javascript" src="/js/jquery-1.8.3.min.js"></script><script type="text/javascript" src="/js/admin.js"></script>
<link href="/js/dtree/dtree.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="/js/dtree/dtree.js"></script><link href="/css/index.css" rel="stylesheet" type="text/css"><link href="/css/navcss.css" rel="stylesheet" type="text/css"><link href="/css/govnet/self.css" rel="stylesheet" type="text/css"><! -- <link href="/css/index.css" rel="stylesheet" type="text/css">--><link href="/css/common.css" rel="stylesheet" type="text/css"></head>
<body class="body_index" >
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w
3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title>
<script type="text/javascript" src="/bootstrap/jquery.min.js"></script><link href="/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<style>
.body_index {background:none !important;}
#mian{ width:95%; margin:20px auto;}
.table{ margin-top:20px; }
.table thead tr{text-align:center;}
.table th{ font-weight:bold; vertical-align:middle;}
.table td{ vertical-align:middle;}
.table input, .table textarea, .table select{margin-bottom:0px; }
.title h4{ border-bottom:2px solid #01AFD4; padding-bottom:8px;}
.title a{margin-top: -50px;}
.title{padding-bottom:10px;}
.handle_label{float:left;margin-top: 5px;margin-left: 15px; width:100px;text-align:right;}
.nav{width:auto !important;background:none !important;}
.table2{ margin-top:0px !important; margin-bottom:0px !important;}
.hide{display:none; }
</style><style>
.mainlevel DIV {width:1050px; }
#mian{ width:95%; margin:20px auto;}
.table{ margin-top:20px; }
.table thead tr{text-align:center;}
.table th{ font-weight:bold; vertical-align:middle;}
.table td{text-align:center;}
.table input, .table textarea, .table select{margin-bottom:0px; }
.red{color:red;}
</style>
<div id="mian">
<span id="export_data" style="float:right;cursor:pointer; ">导出</span>
<table class="table table-bordered">
<tr><th colspan='12'><center>2015年08月北京地区各区县专利授权情况</center></th></tr>
<tr>
<th rowspan="2"><center>排序</center></th>
<th rowspan="2"><center>区县</center></th>
<th rowspan="2"><center>当月累计</center></th>
<th rowspan="2"><center>发明</center></th>
<th rowspan="2"><center>实用新型</center></th>
<th rowspan="2"><center>外观设计</center></th>
<th colspan="6"><center>三种专利申请中</center></th>
</tr>
<tr>
<th><center>个人</center></th>
<th><center>职务小计</center></th>
<th><center>大专院校</center></th>
<th><center>科研单位</center></th>
<th><center>企业</center></th>
<th><center>机关团体</center></th>
</tr>
<tr>
<td><center><b></b></center></td><td><center><b>总计</b></center></td><td>6814</td>
<td>2088</td>
<td>3763</td>
<td>963</td>
<td>828</td>
<td>5986</td>
<td>412</td>
<td>536</td>
<td>4920</td>
<td>118</td>
</tr>
<td><center><b>1</b></center></td><td><center><b>海淀区</b></center></td><td>2157</td>
<td>823</td>
<td>1033</td>
<td>301</td>
<td>246</td>
<td>1911</td>
<td>264</td>
<td>337</td>
<td>1229</td>
<td>81</td>
</tr>
<td><center><b>2</b></center></td><td><center><b>朝阳区</b></center></td><td>1181</td>
<td>569</td>
<td>407</td>
<td>205</td>
<td>192</td>
<td>989</td>
<td>64</td>
<td>92</td>
<td>825</td>
<td>8</td>
</tr>
<td><center><b>3</b></center></td><td><center><b>西城区</b></center></td><td>1095</td>
<td>259</td>
<td>758</td>
<td>78</td>
<td>51</td>
<td>1044</td>
<td>10</td>
<td>19</td>
<td>1001</td>
<td>14</td>
</tr>
<td><center><b>4</b></center></td><td><center><b>昌平区</b></center></td><td>416</td>
<td>78</td>
<td>225</td>
<td>113</td>
<td>55</td>
<td>361</td>
<td>34</td>
<td>5</td>
<td>318</td>
<td>4</td>
</tr>
<td><center><b>5</b></center></td><td><center><b>东城区</b></center></td><td>393</td>
<td>100</td>
<td>262</td>
<td>31</td>
<td>37</td>
<td>356</td>
<td>0</td>
<td>9</td>
<td>340</td>
<td>7</td>
</tr>
<td><center><b>6</b></center></td><td><center><b>丰台区</b></center></td><td>388</td>
<td>84</td>
<td>264</td>
<td>40</td>
<td>99</td>
<td>289</td>
<td>16</td>
<td>62</td>
<td>209</td>
<td>2</td>
</tr>
<td><center><b>7</b></center></td><td><center><b>大兴区</b></center></td><td>387</td>
<td>84</td>
<td>254</td>
<td>49</td>
<td>55</td>
<td>332</td>
<td>16</td>
<td>1</td>
<td>314</td>
<td>1</td>
</tr>
<td><center><b>8</b></center></td><td><center><b>顺义区</b></center></td>
RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...
提速啦 成立于2012年,作为互联网老兵我们一直为用户提供 稳定 高速 高质量的产品。成立至今一直深受用户的喜爱 荣获 “2021年赣州安全大赛第三名” “2020创新企业入围奖” 等殊荣。目前我司在美国拥有4.6万G总内存云服务器资源,香港拥有2.2万G总内存云服务器资源,阿里云香港机房拥有8000G总内存云服务器资源,国内多地区拥有1.6万G总内存云服务器资源,绝非1 2台宿主机的小商家可比。...
LOCVPS发来了针对XEN架构VPS的促销方案,其中美国洛杉矶机房7折,其余日本/新加坡/中国香港等机房全部8折,优惠后日本/新加坡机房XEN VPS月付仅29.6元起。这是成立较久的一家国人VPS服务商,目前提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建...