PHPExcel导出excel
//设置PHPExcel类库的includepath
set_include_path(..PATH_SEPARATOR.D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel.PATH_SEPARATOR.get_include_path());
require_oncePHPExcel.php;
require_oncePHPExcel/Writer/Excel5.php;//用于其他低版本xls
require_oncePHPExcel/Writer/Excel2007.php;//用于excel-2007格式
//创建一个处理对象实例
$objExcel=newPHPExcel();
//创建文件格式写入对象实例,uncomment
$objWriter=newPHPExcel_Writer_Excel5($objExcel);//用于其他版本格式
//or
//$objWriter=newPHPExcel_Writer_Excel2007($objExcel);//用于2007格式
//$objWriter- setOffice2003Compatibility(true);
//设置文档基本属性
$objProps=$objExcel- getProperties();
$objProps- setCreator("ZealLi");
$objProps- setLastModifiedBy("ZealLi");
$objProps- setTitle("OfficeXLSTestDocument");
$objProps- setSubject("OfficeXLSTestDocument,Demo");
$objProps- setDescription("Testdocument,generatedbyPHPExcel.");
$objProps- setKeywords("officeexcelPHPExcel");
$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,8757584,PHPExcel_Cell_DataType::TYPE_STRING);
//合并单元格
$objActSheet- mergeCells(B1:C22);
//分离单元格
$objActSheet- unmergeCells(B1:C22);
//设置宽度
$objActSheet- getColumnDimension(B)- setAutoSize(true);
$objActSheet- getColumnDimension(A)- setWidth(30);
//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字
//被使用科学记数方式显示,配合下面的setAutoSize方法可以让每一行的内容
//都按原始内容全部显示出来。
$objStyleA5=$objActSheet- getStyle(A5);
$objStyleA5- getNumberFormat()- setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//设置字体
$objFontA5=$objStyleA5- getFont();
$objFontA5- setName(CourierNew);
$objFontA5- setSize(10);
$objFontA5- setBold(true);
$objFontA5- setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5- getColor()- setARGB(FFFF0000);
$objFontA5- getColor()- setARGB(PHPExcel_Style_Color::COLOR_WHITE);
//$objFontA5- getFont()- setColor(PHPExcel_Style_Color::COLOR_RED);
//设置对齐方式
$objAlignA5=$objStyleA5- getAlignment();
$objAlignA5- setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5- setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objAlignA5- setWrapText(true);//自动换行,前提是单元格内的值超列宽,或者在值内写入个\n
//设置边框
$objBorderA5=$objStyleA5- getBorders();
$objBorderA5- getTop()- setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5- getTop()- getColor()- setARGB(FFFF0000);//边框color
$objBorderA5- getBottom()- setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5- getLeft()- setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5- getRight()- setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//设置CELL填充颜色
$objFillA5=$objStyleA5- getFill();
$objFillA5- setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5- getStartColor()- setARGB(FFEEEEEE);
//从指定的单元格复制样式信息.
$objActSheet- duplicateStyle($objStyleA5,B1:C22);
//添加图片
$objDrawing = newPHPExcel_Worksheet_Drawing();
$objDrawing- setName(ZealImg);
$objDrawing- setDescription(ImageinsertedbyZeal);
$objDrawing- setPath(./zeali.net.logo.gif);
$objDrawing- setHeight(36);
$objDrawing- setCoordinates(C23);
$objDrawing- setOffsetX(10);
$objDrawing- setRotation(15);
$objDrawing- getShadow()- setVisible(true);
$objDrawing- getShadow()- setDirection(36);
$objDrawing- setWorksheet($objActSheet);
//添加一个新的worksheet
$objExcel- createSheet();
$objExcel- getSheet(1)- setTitle(测试2);
//保存,设置密码
$objPHPExcel- getActiveSheet()- getProtection()- setPassword(PHPExcel);
//保护单元格
$objExcel- getSheet(1)- getProtection()- setSheet(true);
$objExcel- getSheet(1)- protectCells(A1:C22,PHPExcel);
//显示网格线:
$objPHPExcel- getActiveSheet()- setShowGridlines(true);
//显示隐藏列
$objPHPExcel- getActiveSheet()- getColumnDimension(C)- setVisible(true);
$objPHPExcel- getActiveSheet()- getColumnDimension(D)- setVisible(false);
//显示隐藏行
$objPHPExcel- getActiveSheet()- getRowDimension(10)- setVisible(false);
//默认列宽
$objPHPExcel- getActiveSheet()- getDefaultColumnDimension()- setWidth(12);
//默认行宽
$objPHPExcel- getActiveSheet()- getDefaultRowDimension()- setRowHeight(15);
//worksheet默认style设置(和默认不同的需单独设置)
$objPHPExcel- getActiveSheet()- getDefaultStyle()- getFont()- setName(Arial);
$objPHPExcel- getActiveSheet()- getDefaultStyle()- getFont()- setSize(8);
$alignment = $objPHPExcel- getActiveSheet()- getDefaultStyle()- getAlignment();
$alignment- setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$alignment- setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//输出内容到文件通过文件路径再用Ajax无刷新页面
$outputFileName="output.xls";
////$objWriter- save($outputFileName);
//输出内容到浏览器
header("Content-Type:application/force-download");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header(Content-Disposition:inline;filename=".$outputFileName.");
header("Content-Transfer-Encoding:binary");
header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Pragma:no-cache");
$objWriter- save(php://output);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, PDF);
$objWriter- save(a.pdf)
上面的导出已实现,下面记录一些有用的方法
public function getCellByColumnAndRow($pColumn = 0, $pRow = 0) {return $this- getCell(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow);
}
print_r(PHPExcel_Cell::columnIndexFromString(D));exit; //echo 4
echo PHPExcel_Cell::stringFromColumnIndex(4) // echo E
$columns = array( A = array(field = name, title = 姓名, CellExplicit= PHPExcel_Cell_DataType::TYPE_STRING), B = array(field = mobile, title = 手机号码), C = array(field = accountNo, title = 支付宝账号), D = array(field = apply_time, title = 申请时间), E = array(field = amount, title = 金额), F = array(field = status, title = 状态) //excel 头 foreach ($columns as $word = $column) { $objExcel- setActiveSheetIndex(0)- setCellValue($word . "2", $column[title]); // excel内容 $i = 3; $maxWord = max(array_keys($columns));//F foreach($list as $info){ for ($c = 0; $c PHPExcel_Cell::columnIndexFromString($maxWord); $c++) { $word = PHPExcel_Cell::stringFromColumnIndex($c); if(isset($columns[$word][CellExplicit])){ $objExcel- getActiveSheet(0)- setCellValueExplicit($word . $i, $info[$columns[$word][field]], $columns[$word][CellExplicit]); }else{ $objExcel- getActiveSheet(0)- setCellValue($word . $i, $info[$columns[$word][field]]); } } $i++;
//phpexcel默认是没有冻结的,下面是冻结列。定二则定全部
$sheet- freezePane(A1);
$sheet- freezePane(B1);
冻结行
$sheet- freezePane(D1);
$sheet- freezePane(D2);
不能再次定义A,b,c否则列冻结被替代 public function freezePaneByColumnAndRow($pColumn = 0, $pRow = 0){
$this- freezePane(PHPExcel_Cell::stringFromColumnIndex($pColumn) . $pRow);
}
public function unfreezePane() {
$this- freezePane();
}
$worksheet- setInputEncoding("UTF-8");
//$freeze = $sheet- getFreezePane();
用phpexcel批量设置单元格格式
borders = array( //上下左右画线 top = array(style = PHPExcel_Style_Border::BORDER_THIN), left = array(style = PHPExcel_Style_Border::BORDER_THIN), bottom = array(style = PHPExcel_Style_Border::BORDER_THIN), right = array(style = PHPExcel_Style_Border::BORDER_THIN) ), alignment = array( horizontal = PHPExcel_Style_Alignment::HORIZONTAL_CENTER, //横向居中 vertical = PHPExcel_Style_Alignment::VERTICAL_CENTER, //纵向居中 wrap = true //自动换行 ) $style_obj- applyFromArray($style_array); $objExcel- getActiveSheet()- setSharedStyle($style_obj, "A1:J35");
phpexcel大数据导出,数据追加(19万行,分20个sheet, 1万行是一个sheet,第一次到1个sheet数据,其他数据追加到excel分19次覆盖对应的sheet)
先用 PhpExcel 建立reader,再load文件,这样打开已经存在的文档,然后再建立writer,将reader中的数据都复制过来,再用 PhpExcel 进行数据修改,再以load的文件名覆盖保存。
require_once PHPExcel/IOFactory.php; $reader = PHPExcel_IOFactory::createReader(CSV); //读取旧版 excel 档案 $PHPExcel = $reader- load(a.csv); // 档案名称 $sheet = $PHPExcel- getSheet(0); // 读取第一个工作表(编号从 0 开始) $highestRow = $sheet- getHighestRow(); // 取得总行数 $highestColumn = $sheet- getHighestColumn(); // 取得总列数 $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); for ($row = 2; $row = $highestRow; $row++) { $rowData = array(); for ($column = 0; $column = $highestColumnIndex; $column++) { $val = $sheet- getCellByColumnAndRow($column, $row)- getValue(); $rowData[$column] = $val; } //manager db insert
相关文章
- 前端Table数据导出Excel使用HSSFWorkbook(Java)
- vue导出Excel文件(入门篇)
- C# Microsoft.Office.Interop.Owc11 导出excel文件
- displaytag的Excel导出实践
- POI导出复杂的excel;excel公共样式类;excel拼接定制类;数据科学计数法转为普通值
- Office EXCEL 中单元格怎么打斜线
- node excel采集数据
- phpExcel常用方法详解【附有php导出excel加超级链接】
- 机房收费系统之导出Excel
- 清除Excel 2013表格格式
- 使用POI生成Excel文件,可以自动调整excel列宽
- 【C#】Excel导出合并行和列并动态加载行与列
- pandas拆分指定数量的excel
- phpExcel常用方法详解【附有php导出excel加超级链接】
- ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
- C# 获取Excel工作薄中Sheet页(工作表)名集合
- DEV GridControl 导出到Excel
- 90. 将 SAP ABAP 内表内容本地导出成 Excel 文件
- 用Excel利用RFM模型进行客户细分
- Atitit.导出excel功能的设计 与解决方案
- Atitit.导出excel报表的设计与实现java .net php 总
- Excel:python结合Excel使用技巧经验总结之(将python输出的等间隔列数据直接粘贴复制存到物理表格内等)图文教程之详细攻略
- 已解决Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
- java.util.zip包 OutputStream ZipOutputStream以压缩包的方式导出或下载多个文件,比如图片,文档,Excel表格等
- java分页数据导出excel
- R语言批量读取写入Excel数据 r导出输出写入excel多个sheet 导出excel 导入 excel 读入excel 表格
- python操作excel xlwt (转)
- SpringBoot中使用Easyexcel实现Excel导入导出功能(二)
- 〖Python自动化办公篇⑫〗- Excel 文件自动化 - 读取 excel 数据
- springboot使用jxls导出excel___(万能通用模板)--- SpringBoot导入、导出Excel文件___SpringBoot整合EasyExcel模板导出Excel
- Python开发学习之Python和Excel的数据实现互通
- PHP 导出 Excel