PHPEXCEL生成excel文件与导出excel文件

<?php
Header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL & ~E_NOTICE);
require_once(ESF_DIR.‘/zjadmin/phpexcel/Classes/PHPExcel.php‘);

$db->query("set names utf8");
$Info_area=array(2=>"x山区",1=>"x河区",3=>"x阳区",4=>"x海区");
$m = isset($_GET[‘m‘])?$_GET[‘m‘]:0;
if($m == 1)
{
	$reader = PHPExcel_IOFactory::createReader(‘Excel5‘); // 读取 excel 文件方式  此方法是读取excel2007之前的版本 excel2007 为读取2007以后的版本 也可以查\Classes\PHPExcel\Reader 文件夹中的类(为所有读取类,需要哪个填上哪个就行)
	$PHPExcel = $reader->load("hf_lp.xls"); // 文件名称
	$sheet = $PHPExcel->getSheet(0); // 读取第一个工作表从0读起
	$highestRow = $sheet->getHighestRow(); // 取得总行数
	$highestColumn = $sheet->getHighestColumn(); // 取得总列数

	$arr = array(1=>‘A‘,2=>‘B‘,3=>‘C‘);

	for ($row = 2; $row <= $highestRow; $row++) {
	    for ($column = 0; $column<count($arr); $column++) {
	        $val = $sheet->getCellByColumnAndRow($column, $row)->getValue();
	        $list[$row][] = $val;
	    }
	     $str = ‘‘;
	     foreach ($list[$row] as $key => $value) {
	     	if($key === 0)
	     		$str .= ‘‘.array_search($value,$Info_area).‘,‘;
	     	else
	     		$str .= ‘\‘‘.$value.‘\‘,‘;
	     }
	     $field = rtrim($str,‘,‘);
	     echo $field;
	     mysql_query("insert into temp_table(area,name,address) values(".$field.")");
	     echo "<hr>";
	     unset($list);
	}
}
else
{
	$sql_temp = mysql_query("select * from temp_table");
	$i=1;
	$im = array();
	while ($row = mysql_fetch_array($sql_temp))
	{
		$sql = mysql_query("SELECT did,areaid,buildname,address
							from dictionary
							WHERE areaid=".$row[‘area‘]."
							AND buildname=‘".$row[‘name‘]."‘
							");
		if(mysql_num_rows($sql)<1)
		{
			$i++;
			$im[] = array($Info_area[$row[‘area‘]],$row[‘name‘],$row[‘address‘]);
		}
	}
	echo $i++;
include_once(ESF_DIR.‘/zjadmin/phpexcel/Classes/PHPExcel/Writer/Excel2007.php‘);
include_once(ESF_DIR.‘/zjadmin/phpexcel/Classes/PHPExcel/Writer/Excel5.php‘);
include_once(ESF_DIR.‘/zjadmin/phpexcel/Classes/PHPExcel/IOFactory.php‘);

$fileName = "test_excel";
$headArr = array("区域","名称","地址");

getExcel($fileName,$headArr,$im);

}

function getExcel($fileName,$headArr,$data){
    if(empty($data) || !is_array($data)){
        die("data must be a array");
    }
    if(empty($fileName)){
        exit;
    }
    $date = date("Y_m_d",time());
    $fileName .= "_{$date}.xls";

    //创建新的PHPExcel对象
    $objPHPExcel = new PHPExcel();
    $objProps = $objPHPExcel->getProperties();

    //设置表头
    $key = ord("A");
    foreach($headArr as $v){
        $colum = chr($key);
        $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.‘1‘, $v);
        $key += 1;
    }

    $column = 2;
    $objActSheet = $objPHPExcel->getActiveSheet();
    foreach($data as $key => $rows){ //行写入
        $span = ord("A");
        foreach($rows as $keyName=>$value){// 列写入
            $j = chr($span);
            $objActSheet->setCellValue($j.$column, $value);
            $span++;
        }
        $column++;
    }

    $fileName = iconv("utf-8", "gb2312", $fileName);
    $objPHPExcel->getActiveSheet()->setTitle(‘Simple‘);
    $objPHPExcel->setActiveSheetIndex(0);

       header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘);
       header("Content-Disposition: attachment; filename=\"$fileName\"");
       header(‘Cache-Control: max-age=0‘);
       $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007‘);
       $objWriter->save(‘php://output‘); //文件通过浏览器下载
       exit;}

导出来源:http://www.oschina.net/code/snippet_112754_15765

时间: 2024-11-05 19:29:01

PHPEXCEL生成excel文件与导出excel文件的相关文章

前端接收后端返回的文件流导出Excel

需求:接收后端返回的文件流导出Excel 自己项目中遇到过,亲测有效 情况二使用过程中解决的问题: 1.直接接受的文件流下载格式为txt且乱码.需要通过 下面这句代码来转成Excel: let url = new Blob([xmlHttp.response], { type: 'application/vnd.ms-excel' }); 2.文件名乱码,显示数字单词组成的随机字符串.需要后端在header中返回文件名,转义获取 //文件名 link.download = decodeURICo

java 操作 Excel,java导出excel

WritableWorkbook out = null; try { response.getServletResponse().reset(); ((HttpServletResponse) response.getServletResponse()).setHeader("Content-Disposition", "attachment;filename=export.xls"); response.getServletResponse().setConten

.Net常用技巧_调用Excel模板格式导出Excel

object missing = System.Reflection.Missing.Value;  //表示缺i省object SaveFileDialog savedialog = new SaveFileDialog(); savedialog.Filter = "(*.xlsx)|*.xlsx|(*.xls)|*.xls"; savedialog.Title = "导成Excel"; if (savedialog.ShowDialog() == Dialog

用excel.php类库导出excel文件

excel.php是个小型的php类库,可以满足基本的从数据库中取出数据然后导出xls格式的excel文件,代码如下: 1 class Excel { 2 public $filename = 'excel'; 3 public $custom_titles; 4 5 public function make_from_db($db_results) 6 { 7 $data = NULL; 8 $fields = $db_results->field_data(); 9 if ($db_resu

C# NPOI导出Excel和EPPlus导出Excel比较

系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http://npoi.codeplex.com/ EPPlus官网地址:http://epplus.codeplex.com/ 添加NPOI.EPPlus类库dll使用的是NuGet添加. 在类库References右键Manage NuGet Packages...,之后选择添加对应的dll. 测试结果显

navicat如何导入sql文件和导出sql文件

http://jingyan.baidu.com/article/a65957f4976aad24e67f9b9b.html ************************************* ,大家好.Navicat是我们平时使用较多的一个数据库客户端工具,平时小天我主要是用来连接mysql的,使用的时候还是很方便的. 今天小天我就给大家分享一个Navicat如何导入导出sql文件. 工具/原料 安装了navicat的电脑 方法/步骤 打开你的navicat:下图有一个快速打开的方法,

【Spring+Excel】spring导出Excel

需要的jar包 以poi开头的jar包都是必须的 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

jxl导出Excel文件

一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat;

JQGrid导出Excel文件

系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件及方法 Web jquery表格组件 JQGrid 的使用 - 5.Pager翻页.搜索.格式化.自定义按钮 Web jquery表格组件 JQGrid 的使用 - 6.准备工作 & Hello JQGrid Web jquery表格组件 JQGrid 的使用 - 7.查询数据.编辑数据.删除数据