thinkphp3.2.3集成phpexcel1.8导出设置单元格合并

1 到这里下载classes里面的文件

https://github.com/PHPOffice/PHPExcel

2 然后放到 thinkphp的vendor 新建一个文件夹 Phpexcel  然后把文件放进去

3 在封装一个函数

function exportExcel($data, $savefile = null, $title = null, $sheetname = ‘sheet1‘) {
    vendor(‘Phpexcel.PHPExcel‘); //从PHPMailer目录导class.phpmailer.php类文件
    //import("Vendor.excel.phpexcel");
    //若没有指定文件名则为当前时间戳
    if (is_null($savefile)) {
        $savefile = time();
    }
    //若指字了excel表头,则把表单追加到正文内容前面去
    if (is_array($title)) {
        array_unshift($data, $title);
    } 

    $objPHPExcel = new \PHPExcel();
    //Excel内容
    $head_num = count($data); 

    $obj = $objPHPExcel->setActiveSheetIndex(0);
    $obj->mergeCells(‘A1:K1‘); //第一行
    $obj->setCellValue(‘A1‘,‘‘);
    $obj->mergeCells(‘A2:K2‘); //第二行
    $obj->setCellValue(‘A2‘,‘好助教支付清单‘);
    $obj->mergeCells(‘A3:K3‘); //第三行
    $obj->setCellValue(‘A3‘,‘用户:北交大出版社    时间:2019-01-12至2019-12-12练习册:200种   支付金额:20000元‘);  

    $objPHPExcel->getActiveSheet()->getStyle(‘A2‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
    $objPHPExcel->getActiveSheet()->getStyle(‘A3‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
    $objPHPExcel->getActiveSheet()->getStyle(‘A2‘)->getFont()->setSize(20);  //设置字体大小
    $objPHPExcel->getActiveSheet()->getStyle(‘A3‘)->getFont()->setSize(12);  //设置字体大小

    $objPHPExcel->getActiveSheet()->getRowDimension(‘A2‘)->setRowHeight(40);//行高
    $objPHPExcel->getActiveSheet()->getRowDimension(‘A3‘)->setRowHeight(30);//行高

    foreach ($data as $k => $v) { 

        $row = $k + 5; //行
        $nn = 0; 

        foreach ($v as $vv) {
            $col = chr(65 + $nn); //列
            $obj->setCellValue($col . $row, $vv); //列,行,值
            $nn++;
        }
    }
    //设置列头标题
    for ($i = 0; $i < 9; $i++) {
        $alpha = chr(65 + $i);
        //$objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setAutoSize(true); //单元宽度自适应
        $objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setWidth(20);
        $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getFont()->setSize(12);  //设置大小
        $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
        $objPHPExcel->getActiveSheet()->getStyle($alpha . ‘5‘)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中
    } 

   $objPHPExcel->getActiveSheet()->setTitle($sheetname); //题目
   $objPHPExcel->setActiveSheetIndex(0); //设置当前的sheet
   header(‘Content-Type: application/vnd.ms-excel‘);
   header(‘Content-Disposition: attachment;filename="‘ . $savefile . ‘.xls"‘); //文件名称
   header(‘Cache-Control: max-age=0‘);
   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007‘); //Excel5 Excel2007
   $objWriter->save(‘php://output‘);
}

4 然后调用这个函数

        $list=array(0=>array(‘1‘,‘5.3数学练习册‘,‘*‘,‘23121‘,‘23122‘,‘34000‘,‘140000‘,‘100‘,‘149900‘,‘*‘),
                    1=>array(‘‘,‘‘,‘founder‘,‘*‘,‘23123‘,‘23124‘,‘4‘,‘*‘,‘*‘,‘2019/1/12 21:12:32‘),
                    2=>array(‘‘,‘‘,‘nick‘,‘*‘,‘23124‘,‘23125‘,‘7‘,‘100‘,‘149900‘,‘*‘)
        );
        $title = array(‘序号‘, ‘练习册名称‘, ‘终端用户‘, ‘累计数量(二维码)‘, ‘个数区间开始‘, ‘个数区间结束‘, ‘分成‘, ‘剩余处理费用‘, ‘最终支付‘, ‘购买时间‘); //设置要导出excel的表头
        exportExcel($list, 1, $title);

5 然后结果的样子

原文地址:https://www.cnblogs.com/baker95935/p/11182595.html

时间: 2024-11-13 04:06:19

thinkphp3.2.3集成phpexcel1.8导出设置单元格合并的相关文章

C#实现向excel中插入行列,以及设置单元格合并居中效果

插入空行: Microsoft.Office.Interop.Excel.Workbook xlsWorkbook; Microsoft.Office.Interop.Excel.Worksheet xlsSheet = xlsWorkbook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range xlsRow=(Microsoft.Office.Interop.Excel.Range)xlsSheet.Rows[3,MisValue]; xls

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

Excel导出时设置单元格的格式为文本

问题: 用excel导出数据时,如何设置单元格格式的数字分类为"文本",默认是"常规"? 比如:导出编码0235A089,在Excel查看默认显示的是没有前面的0. 解决方法: 用设置单元格的 NumberFormatLocal 属性即可: xlapp.Selection.NumberFormatLocal = "@" Excel导出时设置单元格的格式为文本,布布扣,bubuko.com

20191012——POI设置单元格自动行高(思路)

在经过Jxls或者POI导出数据至excel中后,发现有的单元格内容太多,既没有自动换行,也没有自动增大行高.那如何通过Java代码来实现呢?请看下面步骤: (一)首先,将excel设置为最合适的行高,通过CTRow对象的setCustomHeight(false)函数实现,具体的代码如下: XSSFWorkbook workbook = new XSSFWorkbook(文件路径或者文件流); XSSFSheet sheet = workbook.getSheet(sheetIndex); X

NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)

NPIO源码地址:https://github.com/tonyqus/npoi NPIO使用参考:源码中的 NPOITest项目 下面代码包括: 1.包含多个Sheet的Excel 2.单元格合并 3.设置单元格样式:字段,颜色 4.设置单元格为下拉框并限制输入值 5.设置单元格只能输入数字 // // GET: /Excel/ public ActionResult Write() { var workbook = new HSSFWorkbook();//从流内容创建Workbook对象

firefox ie 设置单元格宽度 td width 有bug,不能正常工作。以下方式可以解决

1. firefox ie 设置单元格宽度 td width 有bug,不能正常工作.以下方式可以解决 jqElement.css({ 'min-width': srcth1.width() + "px", 'width': srcth1.width() + "px" }); 2.不要使用CellSpacing  CellPadding,要不效果错误.

用NPOI创建Excel、合并单元格、设置单元格样式、边框的方法

今天在做项目中,遇到使用代码生成具有一定样式的Excel,找了很多资料,最后终于解决了,Excel中格式的设置,以及单元格的合并等等.下面就介绍下,使用NPOI类库操作Excel的方法. 1.首先我们先在内存中生成一个Excel文件,代码如下:   HSSFWorkbook book = new HSSFWorkbook();        ISheet sheet = book.CreateSheet("Sheet1"); 2.然后在新创建的sheet里面,创建我们的行和列,代码如下

Android给GridView设置单元格分割线

给GridView设置单元格分割线有两种方法,一种是设置背景图片设置分割线,另外一种是自定义GridView重绘视图设置分割线.重绘方法代码如下: public class LineGridView extends GridView{ public LineGridView(Context context) { super(context); // TODO Auto-generated constructor stub } public LineGridView(Context context

【web开发】☆★之利用POI操作Excel表格系列教程【8】设置单元格对其方式

[web开发]☆★之利用POI操作Excel表格系列教程[8]设置单元格对其方式 package csg.xiaoye.poidemo; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HS