php导出excel2007,php导出excel宝塔出错

本文目录一览:

PHP如何将查询出来的数据导出成excel表格(最好做一个按钮)?

讲的复杂了啊!\x0d\x0a你先在一个完整版的PHPExcel之后解压,在“Examples”目录下会找到一大堆例子,根据你的要求这个“01simple-download-xlsx.php”文件就可以了!\x0d\x0a注:你先保持“01simple-download-xlsx.php”文件所在的目录位置不要变,测试好了,再改变名,移到别的地方,地方变了的话,文件里的 “require_once dirname(__FILE__) . ‘/../Classes/PHPExcel.php’;”的所在位置也要变!\x0d\x0a我们要改动代码很少,如下:\x0d\x0a// Add some data\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A1’, ‘Hello’)\x0d\x0a-setCellValue(‘B2’, ‘world!’)\x0d\x0a-setCellValue(‘C1’, ‘Hello’)\x0d\x0a-setCellValue(‘D2’, ‘world!’);\x0d\x0a\x0d\x0a// Miscellaneous glyphs, UTF-8\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)\x0d\x0a-setCellValue(‘A4’, ‘Miscellaneous glyphs’)\x0d\x0a-setCellValue(‘A5’, ‘éàèùâêîôûëïüÿäöüç’);\x0d\x0a、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\x0d\x0a直接用的我的替换\x0d\x0a$objPHPExcel-setActiveSheetIndex(0)//这个就是现实导出的表第一行,有几列是根据你的那张表有几列!\x0d\x0a-setCellValue(‘A1’, ‘单号’)\x0d\x0a-setCellValue(‘B1’, ‘标题’)\x0d\x0a-setCellValue(‘C1’, ‘内容’)\x0d\x0a-setCellValue(‘D1’, ‘序列’)\x0d\x0a-setCellValue(‘E1’, ‘数字’);\x0d\x0a//下面实现的就是建立数据库连接,直接到表,你的连接数据库、表、字段应该与我的不一样,你可以参考\x0d\x0a$conn=@mysql_connect(“localhost”,”root”,”root”) or die(“数据库服务器连接错误”.mysql_error());//连接mysql数据库\x0d\x0amysql_select_db(“temp”,$conn) or die(“数据库访问错误”.mysql_error());//数据库\x0d\x0amysql_query(“set character set gb2312”);\x0d\x0amysql_query(“set names gb2312”);\x0d\x0a\x0d\x0a$sqlgroups=”select * from test “;//查询这一张表的条件\x0d\x0a$resultgroups=mysql_query($sqlgroups);\x0d\x0a$numrows=mysql_num_rows($resultgroups);\x0d\x0aif ($numrows0)\x0d\x0a{\x0d\x0a$count=1;\x0d\x0awhile($data=mysql_fetch_array($resultgroups))\x0d\x0a{\x0d\x0a$count+=1;\x0d\x0a$l1=”A”.”$count”;\x0d\x0a$l2=”B”.”$count”;\x0d\x0a$l3=”C”.”$count”;\x0d\x0a$l4=”D”.”$count”;\x0d\x0a$l5=”E”.”$count”;\x0d\x0a$objPHPExcel-setActiveSheetIndex(0) \x0d\x0a-setCellValue($l1, $data[‘id’])//这就是你要导出表的字段、与对应的名称\x0d\x0a-setCellValue($l2, $data[‘title’])\x0d\x0a-setCellValue($l3, $data[‘content’])\x0d\x0a-setCellValue($l4, $data[‘sn’])\x0d\x0a-setCellValue($l5, $data[‘num’]);\x0d\x0a}\x0d\x0a}

php导出excel表后,打包成压缩包,然后下载到本地如何实现?

用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”;

?

怎么php导出excel是空白

你要给出的代码来才能找出问题啊,不够给一个例子给你看看。

下面有几种方法。

基本上导出的文件分为两种:

1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已。修改这种文件后再保存,通常会提示你是否要转换成Excel文件。

优点:简单。

缺点:难以生成格式,如果用来导入需要自己分别编写相应的程序。

2:Excel格式,与类Excel相对应,这种方法生成的文件更接近于真正的Excel格式。

如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:

$yourStr = mb_convert_encoding(“gb2312”, “UTF-8”, $yourStr);

一、PHP导入Excel

1:还是用PHPExcel,官方网站: 。

2:使用PHP-ExcelReader,下载地址:

举例:

?php

require_once ‘Excel/reader.php’;

// ExcelFile($filename, $encoding);

$data = new Spreadsheet_Excel_Reader();

// Set output Encoding.

$data-setOutputEncoding(‘utf8’);

$data-read(‘ jxlrwtest.xls’);

error_reporting(E_ALL ^ E_NOTICE);

for ($i = 1; $i = $data-sheets[0][‘numRows’]; $i++) {

    for ($j = 1; $j = $data-sheets[0][‘numCols’]; $j++) {

        echo “””.$data-sheets[0][‘cells’][$i][$j].””,”;

    }

    echo “\n”;

}

?

总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册

方法一:特点,简单,省心,制表符”\t”用户分割同一行中的列,换行符”\t\n”可以开启下一行,还能够自动识别日期格式,货币格式等!

?php

header(“Content-type:application/vnd.ms-excel”);

header(“Content-Disposition:attachment;filename=test_data.xls”);

//输出内容如下: 

echo   “姓名”.”\t”; 

echo   “年龄”.”\t”; 

echo   “学历”.”\t”; 

echo   “\n”; 

echo   “张三”.”\t”; 

echo   “25”.”\t”; 

echo   “本科”.”\t”; 

?

动态版

?

$sql = “SELECT * FROM ” .$ecs-table(‘member’). ” “;

$classres = $db-Execute($sql);

header(“Content-type:application/vnd.ms-excel”); 

header(“Content-Disposition:attachment; filename=test_data.xls”);

echo ‘ID’.chr(9);

echo ‘txtPEOClientCode’.chr(9);

echo ‘jcompany’.chr(9);

echo ‘fcompany’.chr(9);

echo ‘ecompany’.chr(9);

echo ‘rcompany’.chr(9);

echo ‘txtAddress’.chr(9);

echo ‘txtCompanyTel’.chr(9);

echo ‘txtFax’.chr(9);

echo ‘txtPostCode’.chr(9);

echo chr(13);

while ($classrow = $classres-FetchRow())

{

//输出到xls

     echo $classrow[‘id’].chr(9);

     echo $classrow[‘txtPEOClientCode’].chr(9);

     echo $classrow[‘jcompany’].chr(9);

     echo $classrow[‘fcompany’].chr(9);

     echo $classrow[‘ecompany’].chr(9);

     echo $classrow[‘rcompany’].chr(9);

     echo $classrow[‘txtAddress’].chr(9);

     echo $classrow[‘txtCompanyTel’].chr(9);

     echo $classrow[‘txtFax’].chr(9);

     echo $classrow[‘txtPostCode’].chr(9);

     echo chr(13);

}

现在用的Php-excel(),代码也很简单:

require (dirname (__FILE__) . “./class-excel-xml.inc.php”);

$sql = “SELECT * FROM ” .$ecs-table(‘member’). ” “;

$classres = $db-Execute($sql);

while($classrow = $classres-FetchRow())

{

$doc[] =   array ($classrow[‘txtPEOClientCode’], $classrow[‘jcompany’], $classrow[‘txtBillTo’]);

}

$xls = new Excel_XML;

$xls-addArray($doc);

$xls-generateXML(“mytest”);

我用的utf-8,结果有乱码问题,把class-excel-xml.inc.php utf8_encode($v) 替换成$v就没有乱码问题了。

1:第一推荐无比风骚的PHPExcel,官方网站:

导入导出都成,可以导出office2007格式,同时兼容2003。

下载下来的包中有文档和例子,大家可以自行研究。

抄段例子出来:

?php

ini_set(“display_errors”,1);//是否显示报错信息

ini_set(‘include_path’, ini_get(‘include_path’).’;D:\\PHP\\PHPExcel 1.6.6\\Tests\\classes\\’);//设置此页面包含路径

include “classes/PHPExcel.php”;

include “classes/PHPExcel/Writer/Excel5.php”;

//创建一个excel

$objPHPExcel = new PHPExcel();

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

$objWriter-save(“xxx.xls”);

?

————————————————————————————–

//设置PHPExcel类库的include path 

set_include_path(‘.’. PATH_SEPARATOR .’D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel’ . PATH_SEPARATOR . get_include_path()); 

    

 

   require_once ‘PHPExcel.php’; 

   require_once ‘PHPExcel/Writer/Excel5.php’;     // 用于其他低版本xls 

   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行附近)前面增加一 

   //行代码: 

//if($ifmt === ‘0’) $ifmt = 1; 

//设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字 

//被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容 

   //都按原始内容全部显示出来。 

   $objStyleA5 -getNumberFormat()-setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); 

//设置字体 

    $objFontA5 = $objStyleA5-getFont(); 

    $objFontA5-setName(‘Courier New’); 

    $objFontA5-setSize(10); 

    $objFontA5-setBold(true); 

    $objFontA5-setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); 

    $objFontA5-getColor()-setARGB(‘FF999999’); 

//设置对齐方式 

    $objAlignA5 = $objStyleA5-getAlignment(); 

    $objAlignA5-setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 

    $objAlignA5-setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 

//设置边框 

   $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); 

//设置填充颜色 

   $objFillA5 = $objStyleA5-getFill(); 

   $objFillA5-setFillType(PHPExcel_Style_Fill::FILL_SOLID); 

   $objFillA5-getStartColor()-setARGB(‘FFEEEEEE’); 

//从指定的单元格复制样式信息. 

    $objActSheet-duplicateStyle($objStyleA5, ‘B1:C22’); 

//添加图片 

   $objDrawing = new PHPExcel_Worksheet_Drawing(); 

   $objDrawing-setName(‘ZealImg’); 

   $objDrawing-setDescription(‘Image inserted by Zeal’); 

   $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’); 

//保护单元格 

   $objExcel-getSheet(1)-getProtection()-setSheet(true); 

   $objExcel-getSheet(1)-protectCells(‘A1:C22’, ‘PHPExcel’); 

//输出内容 

$outputFileName = “output.xls”; 

//到文件 

////$objWriter-save($outputFileName); 

//or 

//到浏览器 

   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, d M Y H:i:s”) . ” GMT”); 

   header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”); 

   header(“Pragma: no-cache”); 

   $objWriter-save(‘php://output’); 

?

php怎么导出大量数据的Excel

微软的Excel设置单元格行数默认是6万行rows,相对的讲其实当我们超过1万行的时候已经是大数据的导出。

好比:有客户10000人,平均每人每天产生10条活动记录,要导出上周所有的客户活动记录: 10000*10*7=700000

估计看70万行的Excel这个人会疯掉的,我们的建议是分批次导出,按时间导出到不同的excel

下面是一个PHPExcel官方的Demo(已修改过)

复制代码

define(‘EOL’, ‘br /’);

$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();

ini_set(“memory_limit”, “1024M”); // 设置php可使用内存

$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;

if (!\PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {

die($cacheMethod . ” 缓存方法不可用” . EOL);

}

echo date(‘H:i:s’), ” 当前使用的缓存方法是: “, $cacheMethod, ” 方式”, EOL;

echo date(‘H:i:s’), ” 开始设置文档属性”, EOL;

$objPHPExcel-getProperties()-setCreator(“Maarten Balliauw”)

-setLastModifiedBy(“Maarten Balliauw”)

-setTitle(“Office 2007 XLSX Test Document”)

-setSubject(“Office 2007 XLSX Test Document”)

具体的还有很多写不下,我是在后盾人看的教学视频无意中学到的,正好解答给你希望能帮到你

原创文章,作者:ZWJC,如若转载,请注明出处:https://www.506064.com/n/141742.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZWJCZWJC
上一篇 2024-10-08 18:04
下一篇 2024-10-08 18:05

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • 为什么不能用Microsoft Excel进行Python编程?

    Microsoft Excel是一个广泛使用的数据分析工具,但是它不能直接用于Python编程。这是因为Microsoft Excel并不是一个编程工具,它的主要功能是进行数据处理…

    编程 2025-04-29
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • 基尼系数Excel计算模板

    这篇文章将介绍基尼系数Excel计算模板,为大家详细阐述如何使用Excel进行基尼系数的计算。 一、模板下载及导入 首先需要下载基尼系数的Excel计算模板,可以在Excel中通过…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • PHP登录页面代码实现

    本文将从多个方面详细阐述如何使用PHP编写一个简单的登录页面。 1. PHP登录页面基本架构 在PHP登录页面中,需要包含HTML表单,用户在表单中输入账号密码等信息,提交表单后服…

    编程 2025-04-27
  • 使用ReoGrid操作Excel的WPf应用

    本文将详细阐述如何使用ReoGrid来操作Excel,重点介绍在WPF应用程序中使用ReoGrid的方法及注意点。 一、ReoGrid简介 ReoGrid是一个基于.NET的开源组…

    编程 2025-04-27
  • 授权版宝塔的使用指南

    本文将从以下几个方面详细阐述授权版宝塔的使用方法和注意事项。 一、安装授权版宝塔 首先需要提醒的是,授权版宝塔需要购买正版授权后才能使用。购买后可以在官方网站下载对应的安装包,然后…

    编程 2025-04-27
  • PHP与Python的比较

    本文将会对PHP与Python进行比较和对比分析,包括语法特性、优缺点等方面。帮助读者更好地理解和使用这两种语言。 一、语法特性 PHP语法特性: <?php // 简单的P…

    编程 2025-04-27

发表回复

登录后才能评论