很多站长朋友们都不太清楚phpcell,今天小编就来给大家整理phpcell,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkPHP怎样使用PHPExcel导出网站数据为excel 2、 我想知道PHP为什么要用PHPExcel而不可以粘贴复制?O(∩_∩)O谢谢解答 3、 thinkphp5.0 如何导入phpexcel插件,能详细些点吗 4、 phpexcel怎么去掉空行 5、 phpexcel把每一列的数据加入到数组中 6、 请教PHPExcel的问题 thinkPHP怎样使用PHPExcel导出网站数据为excel1
一、下载PHPExcel包
2
二、新建文件夹,命名为PHPExcel,将上面两个文件PHPExcel,PHPExcel.php放到我们新建的PHPExcel文件夹下面;然后将此文件夹放在thinkPHP核心包里面,路径如下:D:\***\你的项目\ThinkPHP\Library\Vendor
3
三、前端界面代码
<div style="margin-left: 100px;margin-top: -33px;">
<form action="{:U(output)}" enctype="multipart/form-data" method="post" >
<input type="file" name="photo" />
<input type="submit" value="导出数据" style="background-color: #337AB7;color: white;">
</form>
</div>
4
四、导出表格样式代码
//商家表格导出模板
public function exportExcel($expTitle, $expCellName, $expTableData) {
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle); //文件名称
$fileName = '网站商家信息表' . date('_YmdHis'); //or $xlsTitle 文件名称可根据自己情况设定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new\PHPExcel();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ',
'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV',
'AW', 'AX', 'AY', 'AZ');
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(22);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('L')->setWidth(22);
$objPHPExcel->getActiveSheet()->getColumnDimension('M')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(15);
$objPHPExcel->getActiveSheet(0)->mergeCells('A1:' . $cellName[$cellNum - 1] . '1');
//合并单元格
$objPHPExcel->getActiveSheet()->setCellValue('A1',
'网站商家信息表')->getStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
for ($i = 0; $i < $cellNum; $i++) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for ($i = 0; $i < $dataNum; $i++) {
for ($j = 0; $j < $cellNum; $j++) {
$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j] .
($i + 3), " ".$expTableData[$i][$expCellName[$j][0]]);
}
}
ob_end_clean(); //清除缓冲区,避免乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle. '.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");
//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
5
五、导出所需数据代码
function output($begin=0, $end=0) {//导出商家信息Excel
$xlsName = "User";
$xlsCell = array(
array('userid', '商家id'),
array('groupid', '商家等级'),
array('store_name', '店铺名称'),
array('contact_name', '联系人'),
array('phone', '手机'),
array('email', '邮箱'),
array('activity_count', '活动商品'),
array('frozen_deposit', '冻结中保证金'),
array('regdate', '注册时间'),
array('loginnum', '登录次数'),
array('lastdate', '最近登录'),
array('id_number', '身份证号码'),
array('name', '姓名'),
array('qq', 'QQ'), );
$beginToday = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$endToday = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1;
if ($begin > 0) { $beginToday = $begin;}
if ($end > 0) {$endToday = $end;}
$xlsModel = M('member');
$xlsData=$xlsModel->query("SELECT
m.userid,m.groupid,c.store_name,c.contact_name,m.phone,m.email,c.frozen_deposit,FROM_UNIXTIME(m.regdate)
AS regdate,loginnum,FROM_UNIXTIME(m.lastdate) AS lastdate,m.qq FROM
xw_member AS m ,xw_member_merchant AS c WHERE m.modelid = 2 AND m.userid
= c.userid and (m.lastdate between $beginToday and $endToday) ORDER BY
m.userid DESC");
$dataNum = count($xlsData);
for ($i = 0; $i < $dataNum; $i++){
if ($xlsData[$i][groupid] == '1') {
$xlsData[$i][groupid] = '普通商家';
} else if ($xlsData[$i][groupid] == '2') {
$xlsData[$i][groupid] = '金牌商家';
} else if ($xlsData[$i][groupid] == '3') {
$xlsData[$i][groupid] = '白金商家';
} else if ($xlsData[$i][groupid] == '4') {
$xlsData[$i][groupid] = '钻石商家';
}
$rs=M('member_attesta')->where("userid= '".$xlsData[$i]['userid']."'
AND type = 'identity'")->getField('infos');
$identity = string2array($rs);
$xlsData[$i]['id_number'] = $identity['id_number'];
$xlsData[$i]['name'] = $identity['name'];
$xlsData[$i]['activity_count']=
M('product')->where(array('company_id'=>$xlsData[$i]['userid']))->count();
}
$this->exportExcel($xlsName, $xlsCell, $xlsData);
}
}
6
六、导出数据表格如下
我想知道PHP为什么要用PHPExcel而不可以粘贴复制?O(∩_∩)O谢谢解答用PHPExcel,PHPExcel是相当强大的 MS Office Excel 文档生成类库。
你上它的官/网把程序包下/载下来,里面有 PHPExcel 的程序、还有30个实例程序和三个文档。
看一下其中的开发文档你就会用了。
读取(这段在开发文档里有的,在13页):
require_once 'Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
thinkphp5.0 如何导入phpexcel插件,能详细些点吗下载phpexcel,将整个文件夹放到vendor文件夹里面,如下图
在控制器中的使用方法
vendor("PHPExcel.PHPExcel");
$objPHPExcel = new \PHPExcel();
$file_name = date('YmdHis').'.xls';
header("Content-Disposition:attachment; filename=".$file_name);
$objActSheet = $objPHPExcel->getActiveSheet()->setTitle('成绩单');
$objActSheet->SetCellValue('A1', 'ID');
$objActSheet->SetCellValue('B1', '名称');
$objActSheet->SetCellValue('C1', '分数');
$list = "";//数据列表
if($list){
foreach ($list as $k => $v){
$i = $k + 2;
$objActSheet->SetCellValue('A'.$i,''. $v['id']);
$objActSheet->SetCellValue('B'.$i,''. $v['name']);
$objActSheet->SetCellValue('C'.$i,''. $v['score']);
}
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter->save('php://output');//输出到浏览器
exit;
}
phpexcel怎么去掉空行下面路径可以改为你自己项目中的路径,我从从网上搜了也没个具体的办法,只好这样去除空行了!!!
/**
* 将excel数据转换为数组
* @param string $filePath
* @param int $sheet
* @return array
*/
public function actionRead($filePath='',$sheet=0)
{
// 返回值
$data = array();
if(empty($filePath) || !file_exists($filePath)) return $data;
include "data/extend/phpexcel_classes/PHPExcel/Reader/Excel2007.php";
$PHPReader = new \PHPExcel_Reader_Excel2007();
// 建立reader对象
if(!$PHPReader->canRead($filePath)){
include "data/extend/phpexcel_classes/PHPExcel/Reader/Excel5.php";
$PHPReader = new \PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)) return $data;
}
// 建立excel对象
$PHPExcel = $PHPReader->load($filePath);
// 读取excel文件中的指定工作表
$currentSheet = $PHPExcel->getSheet($sheet);
// 取得最大的列号
$allColumn = $currentSheet->getHighestColumn();
// 取得一共有多少行
$allRow = $currentSheet->getHighestRow();
// 循环读取每个单元格的内容。注意行从2开始,列从A开始
for($rowIndex = 2; $rowIndex <= $allRow; $rowIndex++){
// 每一行的数据
$row_data = array();
$empty_num = 0;
for($colIndex = 'A';$colIndex <= $allColumn; $colIndex++){
$index = $colIndex . $rowIndex;
$cell = $currentSheet->getCell($index)->getValue();
is_object($cell) $cell = $cell->__toString();
$row_data[] = $cell;
empty($cell) $empty_num++;
}
if ($empty_num < count($row_data)) {
$data[] = $row_data;
}
}
return $data;
}
phpexcel把每一列的数据加入到数组中<?php
require_once 'PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5'); // 读取旧版 excel 档案
$PHPExcel = $reader->load("y.xls"); // 档案名称
$sheet = $PHPExcel->getSheet(0); // 读取第一个工作表(编号从 0 开始)
$highestRow = $sheet->getHighestRow(); // 取得总列数
$result = array();
$temp = array();
for ($row = 1; $row <= $highestRow; $row++) {
for ($column = 1; $column <=6; $column++) {
$val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
$temp[] = $val;
}
$result[] = $temp;
$temp = array();
}
?>
$val = $sheet->getCellByColumnAndRow($column, $row)->getValue(); //就是取出该单元格的数据$row是行数(循环),$column是列数
- -麻烦帮我调试一下数组,要能执行的。。
= =不要喷我,我真的不会= =我从来没有操作过数组(对数组操作不理想。。)
试试它
请教PHPExcel的问题1、$objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );能够设置颜色。
2、合并后的单元格坐标是原最左上角的单元格,如合A1:B2合并后坐标是A1。
3、照你的提示信息,应该是你没有给出坐标。如$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');中你并没有指定A1这个参数。检查你用在此处的PHP变量是否引用正确(如拼写错误等)。
关于phpcell的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。