kingsmlin249 / phplus Goto Github PK
View Code? Open in Web Editor NEWPHP扩展或插件
License: Apache License 2.0
PHP扩展或插件
License: Apache License 2.0
<!--html-->
<input type="text" id="pic" name="pic" value=""/>
<a href="javascript:void(0);" class="easyui-linkbutton fontawesome-icon-button" onclick="upImage();">上传图片</a>
<!--载入js start-->
<script type="text/javascript" src="./editor/js/ueditor.config.js"></script>
<script type="text/javascript" src="./editor/js/ueditor.all.js"></script>
<script type="text/plain" id="upload_ue"></script>
<!--载入js end-->
<!--上传图片模块-->
<script type="text/javascript">
var theEditor ;
$(function() {
//重新实例化一个编辑器,防止在上面的editor编辑器中显示上传的图片或者文件
theEditor = UE.getEditor('upload_ue',
{
upload_model: "banner",
UEDITOR_HOME_URL:'__ROOT__Application/ESAdmin/Public/editorUploadImages/js/',
});
theEditor .ready(function () {
//设置编辑器不可用
// theEditor .setDisabled();
//隐藏编辑器,因为不会用到这个编辑器实例,所以要隐藏
theEditor .hide();
//侦听图片上传
theEditor .addListener('beforeInsertImage', function (t, arg) {
//将地址赋值给相应的input,只去第一张图片的路径
$("#pic").attr("value", arg[0].src);
//图片预览
$("#show_pic").attr("href", arg[0].src);
$("#show_pic").show();
})
//侦听文件上传,取上传文件列表中第一个上传的文件的路径
// theEditor .addListener('afterUpfile', function (t, arg) {
// $("#file").attr("value", theEditor .options.filePath + arg[0].url);
// })
});
});
//弹出图片上传的对话框
function upImage() {
var myImage = theEditor .getDialog("insertimage");
myImage.open();
}
</script>
public function readerExcel($file){
//载入PHPExcel类型
vendor('PHPExcel18.PHPExcel');
$objectReader = \PHPExcel_IOFactory::createReaderForFile($file);
$objPHPExcel = $objectReader->load($file);
//获取单页的Excel数据
$sheet = $objPHPExcel->getSheet(0);
//获取Excel的横纵行数据
$heightRow = $sheet->getHighestRow();
$heightColumn = $sheet->getHighestColumn();
//创建存放数据的数组
$data=array();
for($j=1;$j<=$heightRow;$j++){
for($k='A';$k<=$heightColumn ;$k++){
// 读取单元格
$data[$j][$k]=$sheet->getCell("$j$k")->getValue();
}
}
return $data;
}
注意事项:当HeightColumn大于Z的时候,如AA时,输出数据错误,所以必要时需要对height进行处理
步骤:导入Excel模板->保存数据
结果:最后我们就能获取到导入的Excel数据
public function exportAction($file){
//载入PHPExcel类型
Vendor('PHPExcel18.PHPExcel');
//实例化PHPExcel类
$objectReader = \PHPExcel_IOFactory::createReaderForFile($file);
//载入文件
$objPHPExcel = $objectReader->load($file);
//对需要修改的单元格位置进行修改
$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Hello!');//指定要写的单元格位置
//进行写入操作
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//处理中文字符串及IE浏览器
$userBrowser = $_SERVER['HTTP_USER_AGENT'];
if (preg_match( '/MSIE/i', $userBrowser )){
$file = urlencode($file);
}
$file = iconv('UTF-8', 'GBK//IGNORE', $file);
//引入头进行下载
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="'.$file.'"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
unset($objWriter);
unset($objPHPExcel);
}
步骤:导入Excel模板->修改所需数据->保存->导出
结果:最后我们就能导出自己所需的Excel
/**
* Create Format ASCII
* @param $index
* @param bool $getAsc
* @return float|int|string
*/
private function getExcelColumnChar($index,$getAsc = true){
if($getAsc){
if (chr($index) > "Z") {
return "A" . chr($index - ord("Z") - 1 + ord("A"));
} else {
return chr($index);
}
}else{
if(strlen($index) == 2 && is_string($index)){
$start_str = "A";
$end_str = "Z";
$str1 = substr_replace($index,'',1,1);
$str2 = substr_replace($index,'',0,1);
$cycle = (ord($end_str) - ord($start_str) + 1);
$cycle_sum = $cycle *( ord($str1) - ord($start_str) + 1 );
return $cycle_sum + ord($start_str) + ord($str2) - ord($start_str);
}elseif(!is_string($index)){
return $this->getExcelColumnChar($index);
}else{
return ord($index);
}
}
}
作用:为避免PHP HeightColumn超过Z,通过该函数来对其进行装换
public function readerExcel($file){
//载入PHPExcel类型
vendor('PHPExcel18.PHPExcel');
$objectReader = \PHPExcel_IOFactory::createReaderForFile($file);
$objPHPExcel = $objectReader->load($file);
//获取单页的Excel数据
$sheet = $objPHPExcel->getSheet(0);
//获取Excel的横纵行数据
$heightRow = $sheet->getHighestRow();
$heightColumn = $sheet->getHighestColumn();
//创建存放数据的数组
$data=array();
for($j=1;$j<=$heightRow;$j++){
for($k=ord('A');$k<=$this->getExcelColumnChar($heightColumn,false) ;$k++){
// 读取单元格
$kc = $this->getExcelColumnChar($k,true);
$data[$j][$kc]=$sheet->getCell("$j$kc")->getValue();
}
}
return $data;
}
创建人
$objPHPExcel->getProperties()->setCreator("Autor");
最后修改人
$objPHPExcel->getProperties()->setLastModifiedBy("Autor");
标题
$objPHPExcel->getProperties()->setTitle("Office 2007 Excel");
题目
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX");
描述
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX");
关键字
$objPHPExcel->getProperties()->setKeywords("office 2007 xlsl ");
种类
$objPHPExcel->getProperties()->setCategory("file");
设置当前的sheet 0为第一个,依次往上加
$objPHPExcel->setActiveSheetIndex(0);
设置sheet的name
$objPHPExcel->getActiveSheet()->setTitle('Default');
设置单元格的值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'H');
$objPHPExcel->getActiveSheet()->setCellValue('A2', e);
$objPHPExcel->getActiveSheet()->setCellValue('A3', l);
$objPHPExcel->getActiveSheet()->setCellValue('A4', l);
$objPHPExcel->getActiveSheet()->setCellValue('A5', o);
$objPHPExcel->getActiveSheet()->setCellValue('A6', '=SUM(A1:A2)');
$objPHPExcel->getActiveSheet()->setCellValue('A7', '=MIN(A3:A4)');
合并单元格
$objPHPExcel->getActiveSheet()->mergeCells('A1:B2');
分离单元格
$objPHPExcel->getActiveSheet()->unmergeCells('A2:B2');
保护cell
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);
$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
设置字体
$objPHPExcel->getDefaultStyle()->getFont()->setName('微软雅黑');
设置格式
// Set cell number formats
echo date('H:i:s') . " Set cell number formats\n";
$objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );
设置宽width
// Set column widths
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
设置font
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
设置align
$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
//水平居中
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
设置自动换行
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setWrapText(true);
设置column的border
$objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('B4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('C4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('D4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('E4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
设置border的color
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');
设置填充颜色
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->getStartColor()->setARGB('FF808080');
设置边框
$styleArray = array(
'borders' => array(
'allborders' => array(
'style' => \PHPExcel_Style_Border::BORDER_THIN,//细边框
'color' => array('argb' => $color),
),
),
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->applyFromArray($styleArray);
//或者
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
);
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.