❶ thinkphp 导出excel 怎么合并单元格
PHPexcel导出_带合并单元格/边框背景/_有效果图_thinkphp
##供稿单位导出
public function gonggao_excel(){
$color='0xCC000000';
//查询所有供稿单位
$order='paixu asc,id desc';
$where=array('token'=>$this->token,'status'=>'1');
$data=M('gonggao')->where($where)->order($order)->select();
//增加供稿单位的文章数量
foreach ($data as $key => $value) {
$data[$key]['shuliang']=M('img')->where(array('gonggaoid'=>$value['id']))->count();
$data[$key]['title']=M('img')->where(array('gonggaoid'=>$value['id']))->getfield('title',true);
}
// //查询出所有行数
// $all_count=0;
// foreach ($data as $key => $value) {
// if(!empty($value['title'])){
// $all_count=$all_count+count($value['title']);
// }else{
// $all_count++;
// }
//重组数组
foreach ($data as $key => $value) {
if(!empty($value['title'])){
foreach ($value['title'] as $k => $v) {
$newData[]=$v;
}
}else{
$newData[]='';
}
}
//mp($newData);
//mp($data);
//die;
// 引用phpexcel类
import('Lib/ORG/PHPExcel');
// 创建对象
$objPHPExcel = new PHPExcel();
// 显示错误信息
error_reporting(E_ALL);
// Set properties
$objPHPExcel->getProperties()->setCreator("赵英杰")
->setLastModifiedBy("赵英杰")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
// 设置宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(40);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(60);
// 设置行高度
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //设置默认行高
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); //第一行行高
$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20); //第二行行高
// 字体和样式
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(12); //字体大小
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getFont()->setBold(false); //第二行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); //第一行是否加粗
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16); //第一行字体大小
// 设置垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//边框样式
$styleArray = array(
'borders' => array(
'allborders' => array(
//'style' => PHPExcel_Style_Border::BORDER_THICK,//边框是粗的
'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);
// 设置水平居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('C')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
// 合并
$objPHPExcel->getActiveSheet()->mergeCells('A1:D1');
// 表头
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '供稿单位文章统计')
->setCellValue('A2', '编号')
->setCellValue('B2', '供稿单位')
->setCellValue('C2', '文章数量')
->setCellValue('D2', '文章名称');
// 内容
// for ($i = 0, $len = count($data); $i < $len; $i++) {
// $objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 3), $i);
// $objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 3), $data[$i]['gonggao']);
// $objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 3), $data[$i]['shuliang']);
// $objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 3), $data[$i]['status']);
// $objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':D' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
// $objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':D' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// $objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16);
// }
//重构内容-文章名称录入
for ($i = 0, $len = count($newData); $i < $len; $i++) {
$objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 3), $newData[$i]);
$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':D' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//左对齐
$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
//边框设置
//$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':D' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
// $objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16); //重构行高
$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':D' . ($i + 3))->applyFromArray($styleArray);
}
// //查询出所有行数
// $all_count=0;
// foreach ($data as $key => $value) {
// if(!empty($value['title'])){
// $all_count=$all_count+count($value['title']);
// }else{
// $all_count++;
// }
//合并对应单元格并录入编号/供稿单位/数量。
$ii=3;//从第三行开始的
for ($i = 0, $len = count($data); $i < $len; $i++) {
if(count($data[$i]['title'])>0){
//合并 注意-1,因为当前单位有内容且是第一篇
$objPHPExcel->getActiveSheet()->mergeCells('A' . ($ii) . ':A' . ($ii-1+count($data[$i]['title']) ));
$objPHPExcel->getActiveSheet()->mergeCells('B' . ($ii) . ':B' . ($ii-1+count($data[$i]['title']) ));
$objPHPExcel->getActiveSheet()->mergeCells('C' . ($ii) . ':C' . ($ii-1+count($data[$i]['title']) ));
//录入记录
$objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($ii), $i+1);
$objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($ii), $data[$i]['gonggao']);
$objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($ii), count($data[$i]['title']));
//居中
$objPHPExcel->getActiveSheet()->getStyle('A' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('B' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('C' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$ii=$ii-1+count($data[$i]['title']);
$ii++;
}else{
//录入记录
$objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($ii), $i+1);
$objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($ii), $data[$i]['gonggao']);
$objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($ii), count($data[$i]['title']));
//居中
$objPHPExcel->getActiveSheet()->getStyle('A' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('B' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('C' . ($ii))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$ii++;
}
}
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('供稿单位文章统计');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// 输出
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . '供稿单位' . '.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
❷ table标签的结构与合并单元格的实现方法
以下是对table标签的结构与合并单元格的实现方法进行了详细的分析介绍 需要的朋友可以过来参考下<table>标签的结构 示例代码
复制代码 代码如下: <table border= > <caption>信息统计表</caption> <thead> <tr > <th>#</th> </tr> </thead> <tbody> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td> </td> </tr> </tbody> </table>一个完整的例子
复制代码 代码如下: <table border= > <caption >信息统计表</caption> <thead> <tr > <th>#</th> <th>Firstname</th> <th>Lastname</th> <th>Phone</th> <th>QQ</th> </tr> </thead> <tbody> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> </tbody> </table>合并上下的单元格(rowspan) 示例代码
复制代码 代码如下: <table border= > <caption >信息统计表</caption> <thead> <tr > <th>#</th> <th>Firstname</th> <th>Lastname</th> <th>Phone</th> <th>QQ</th> </tr> </thead> <tbody> <tr > <td rowspan=" "> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> </tbody> </table>合并左右的单元格(colspan) 示例代码
复制代码 代码如下: <table > <caption >信息统计表</caption> <thead> <tr > <th>#</th> <th>Firstname</th> <th>Lastname</th> <th>Phone</th> <th>QQ</th> </tr> </thead> <tbody> <tr > <td> </td> <td colspan=" "><p >这是合并了四个单元格</p></td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> <tr > <td> </td> <td>qian</td> <td>shou</td> <td> </td> <td> </td> </tr> </tbody> </table> lishixin/Article/program/PHP/201311/20979
❸ php 导出csv时如何设置属性,合并单元格之类的。。
CSV文件本身就是不带格式符号的纯文字,无法直接在PHP中控制单元格合并这样的事情,我觉得你可以用html代码生成execl能直接读的文档比较好
$result=mysql_query("select*fromstudentorderbyidasc");
$str="<tr><td>姓名</td><td>性别</td><td>年龄</td></tr> ";
$str=iconv('utf-8','gb2312',$str);
while($row=mysql_fetch_array($result)){
$name=iconv('utf-8','gb2312',$row['name']);
$sex=iconv('utf-8','gb2312',$row['sex']);
//要控制合并啥的,在下边修改即可
$str.="<tr><td>".$name."</td><td>".$sex."</td><td>".$row['age']."</td></tr>";
}
$filename=date('Ymd').'.xls';
export_xls($filename,$str);
functionexport_xls($filename,$string){
//可以修改样式,控制字号、字体、表格线、对齐方式、表格宽度、单元格padding等,在下边的<style></style>
$header="<htmlxmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <metahttp-equiv="Content-type"content="text/html;charset=GBK"/> <style> td{padding:4px;mso-ignore:padding;color:windowtext;font-size:10.0pt;font-weight:400;font-style:normal;text-decoration:none;font-family:Arial;mso-generic-font-family:auto;mso-font-charset:134;mso-number-format:General;text-align:general;vertical-align:middle;border:.5ptsolidwindowtext;mso-background-source:auto;mso-pattern:auto;mso-protection:lockedvisible;white-space:nowrap;mso-rotate:0;} </style> </head><body> <tablex:strborder=0cellpadding=0cellspacing=0width=100%style="border-collapse:collapse">";
$footer="</table> </body></html>";
$exportString=$header.$string.$footer;
header("Cache-Control:public");
header("Pragma:public");
header("Content-type:Content-type:application/vnd.ms-excel");
header("Accept-Ranges:bytes");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-length:".strlen($exportString));
echo$exportString;
exit;
}
❹ PHP-ExcelReader中如何合并单元格,如跨行、跨列合并单元格急求
不可以。Excel可以实现左右跨列显示不支持上下跨行显示我估计原因是:左右跨列显示,因为一般来说,同一行是一条记录,当左右不存在数据的时候,实现跨列显示不影响使用,也符合人的习惯(当左右单元格有数据的时候,就不能跨列显示了)而上下行一般是不同的数据,上下自动跨行显示的话,会影响其他数据的显示,也影响美观,所以不支持(但是可以通过合并行的形式来强制解决这个问题)
❺ phpexcel读取合并单元格的值
总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册2009/03/06 上午 02:37方法一:特点,简单,省心,
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
$tx='表头';
echo $tx."\n\n";
//输出内容如下:
echo "姓名"."\t";
echo "年龄"."\t";
echo "学历"."\t";
echo "\n";
echo "张三"."\t";
echo "25"."\t";
echo "本科"."\t";
?>
方法二: 引用google code中推荐的小类库(大体同方法一,比较复杂点)
方法三: PHPEXCEL 类库,功能强大,支持win Excel2003 ,Win Excel2007.
<?
//设置PHPExcel类库的include path
set_include_path('.'. PATH_SEPARATOR .
'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .
get_include_path());
/**
* 以下是使用示例,对于以 //// 开头的行是不同的可选方式,请根据实际需要
* 打开对应行的注释。
* 如果使用 Excel5 ,输出的内容应该是GBK编码。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式
// 创建一个处理对象实例
$objExcel = new PHPExcel();
// 创建文件格式写入对象实例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
//$objWriter->setOffice2003Compatibility(true);
//*************************************
//设置文档基本属性
$objProps = $objExcel->getProperties();
$objProps->setCreator("Zeal Li");
$objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");
//*************************************
//设置当前的sheet索引,用于后续的内容操作。
//一般只有在使用多个sheet的时候才需要显示调用。
//缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0
$objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet();
//设置当前活动sheet的名称
$objActSheet->setTitle('测试Sheet');
//*************************************
//设置单元格内容
//
//由PHPExcel根据传入内容自动判断单元格内容类型
$objActSheet->setCellValue('A1', '字符串内容'); // 字符串内容
$objActSheet->setCellValue('A2', 26); // 数值
$objActSheet->setCellValue('A3', true); // 布尔值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//显式指定内容类型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',
PHPExcel_Cell_DataType::TYPE_STRING);
//合并单元格
$objActSheet->mergeCells('B1:C22');
//分离单元格
$objActSheet->unmergeCells('B1:C22');
//*************************************
//设置单元格样式
//
//设置宽度
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//设置单元格内容的数字格式。
//
//如果使用了 PHPExcel_Writer_Excel5 来生成内容的话,
//这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的
//各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode
//为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要
//修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
❻ php输出表格的九九乘法表,如图,表格先从右边向左边输出
在确保表格已经移到最左边后,选择那几个偏移的单元格,右击选择“设置单元格格式”调出设置界面后,选择上面的对齐标签点击,看看里面的文本对齐方式中是否设置了缩进。如果有的话就取消掉它设置成0,
不过从你的表格来看,应该不是这个问题,是你设置了居中对齐,而你的表格小于文字宽度,又没有自动转行,所以才这样,你可以通过拉宽A列来解决
如果你偏移的那几个单元格后面B列可以合并进来的话,你可以将A2和 B2单元格进行合并居中操作,完了点一下格式刷,然后将下面几个刷成同样格式也行
❼ php 用table导出xls 单元格没有合并
table导出的就是这样,PHP导出EXCEL我都是使用PHPEXCEL来操作。
虽然比直接改header生成xls麻烦了,但是支持的功能够多。
偷懒的话我就直接前端生成xls。
最后,你把客户信用卡信息透露出来,不怕银监会调查你们吗?
❽ php如何实现将一个页面以excel格式保存,需要的时候能在转化成页面形式显示
需要用到PHPExcel
保存为Excel:
<?php
header("content-type:text/html;charset=utf-8");
/**
*Errorreporting
*/
error_reporting(E_ALL);
/**
*PHPExcel
*/
include_once'./Classes/PHPExcel.php';
/**
*PHPExcel_Writer_Excel2003用于创建xls文件
*/
include_once'./Classes/PHPExcel/Writer/Excel5.php';
//CreatenewPHPExcelobject
$objPHPExcel=newPHPExcel();
//Setproperties
$objPHPExcel->getProperties()->setCreator("RT");
$objPHPExcel->getProperties()->setLastModifiedBy("RT");
$objPHPExcel->getProperties()->setTitle("Office2007XLSXTestDocument");
$objPHPExcel->getProperties()->setSubject("Office2007XLSXTestDocument");
$objPHPExcel->getProperties()->setDescription("TestdocumentforOffice2007XLSX,generatesingPHPclasses.");
//Addsomedata
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->SetCellValue('A1','Date');
//合并单元格:
$objPHPExcel->getActiveSheet()->mergeCells('B1:F1');
$objPHPExcel->getActiveSheet()->SetCellValue('B1','CSATScore');
$objPHPExcel->getActiveSheet()->SetCellValue('G1','GrandTotal');
$objPHPExcel->getActiveSheet()->SetCellValue('H1','CSAT');
$objPHPExcel->getActiveSheet()->SetCellValue('A2','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('C2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('D2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('E2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G2','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H2','0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A3','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B3','武汉');
$objPHPExcel->getActiveSheet()->SetCellValue('C3','湖北');
$objPHPExcel->getActiveSheet()->SetCellValue('D3','洪湖');
$objPHPExcel->getActiveSheet()->SetCellValue('E3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G3','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H3','0%');
$objPHPExcel->getActiveSheet()->SetCellValue('A4','08/01/11');
$objPHPExcel->getActiveSheet()->SetCellValue('B4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('C4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('D4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('E4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('F4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('G4','0');
$objPHPExcel->getActiveSheet()->SetCellValue('H4','0%');
//Renamesheet
//$objPHPExcel->getActiveSheet()->setTitle('Csat');
//SaveExcel2007file
//$objWriter=newPHPExcel_Writer_Excel2007($objPHPExcel);
$d=date('Y-m-d');
$objWriter=newPHPExcel_Writer_Excel5($objPHPExcel);
$objWriter->save(str_replace('.php','.xls',__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=".$d.".xls");
header("Content-Transfer-Encoding:binary");
$objWriter->save("php://output");
?>
读取Excel内容:
<?php
header("Content-Type:text/html;charset=utf-8");
require_once'excel_reader2.php';
//创建对象
$data=newSpreadsheet_Excel_Reader();
//设置文本输出编码
$data->setOutputEncoding('UTF-8');
//读取Excel文件
$data->read("e.xls");
//$data->sheets[0]['numRows']为Excel行数
for($i=1;$i<=$data->sheets[0]['numRows'];$i++){
//$data->sheets[0]['numCols']为Excel列数
for($j=1;$j<=$data->sheets[0]['numCols'];$j++){
//显示每个单元格内容
//echo$data->sheets[0]['cells'][$i][$j].'';
$arr[$i]['id']=$data->sheets[0]['cells'][$i][1];
//$arr[$i]['idcard']=$data->sheets[0]['cells'][$i][2];
$arr[$i]['stuno']=$data->sheets[0]['cells'][$i][3];
//$arr[$i]['name']=$data->sheets[0]['cells'][$i][4];
$arr[$i]['dept']=$data->sheets[0]['cells'][$i][5];
$arr[$i]['major']=$data->sheets[0]['cells'][$i][6];
$arr[$i]['class']=$data->sheets[0]['cells'][$i][7];
}
/*
*exit();echo'<br>';
*/
}
print_r($arr);
?>
具体参考我的博客:http://my.oschina.net/rain21/blog/380349
❾ php合并单元格
你嵌入html语言不就可以了吗 ?
else{
$sql = mysql_query("select * from price group by company ",$conn);
while($row = mysql_fetch_array($sql)){
?><table><tr><td>产品名称</td><td>产品..</td></tr>
<tr><td><?php echo $row['产品名字'];?></td><td><?php echo $row['产品..'];?>
</td></tr>
</table>
<?php }
}
❿ 求高手指点excel批量自动合并单元格
H列批量合并不是不可以,问题是,假如你A的的第二行(H2单元格)和B的第一行(H3单元格)都是4的话,会被合并在一起。不过我还是讲一下方法吧:
首先前提是你H列的数据种类不多,因为H列有几种数值,就要操作几次
选中H列,按下Ctrl+F查找,输入1,点查找全部(注意,查找最好用单元格匹配,以免误选)
选中全部查找的第一个结果,再按住shift选中最后一个结果(也就是把结果全选)
点击“合并后居中”,会提示合并后只保留第一个单元格的值,点确定
重复步骤2~4,在步骤2的时候输入其他的值
正如我说,上面的方法会有误操作的可能。保险一点的做法是,先排序,将需要3个一合的排在一起,2个一合的排在一起,这样就可以直接复制格式了。方法就是在一个辅助列里面用countifs函数计算出现次数,再排序就行了。