PHP写的从数据库导入到EXCEL

就是原理很分页原理一样! 选取一定数量的数据然后变成数组,接着直接写入文件。接下来继续选取后面没选定数据在变成数组,接着在写入文件!这个解决了内存溢出。但是多CPU还是有个考验! 由于本人刚刚学PHP(PHP培训 php教程 )不久,功力不深厚!只能写出这样的东西!

源码! 
Excel(Excel培训 )类 
PHP code
class Excel{

var $header = "<?xml version="1.0" encoding="utf-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">";
    var $footer = "</Workbook>";
    var $lines = array ();
    var $worksheet_title = "Table1";
    function addRow ($array) {
        $cells = "";
        foreach ($array as $k => $v):
            if(is_numeric($v)) {
                if(substr($v, 0, 1) == 0) {
                    $cells .= "<Cell><Data ss:Type="String">" . $v . "</Data></Cell>n";
                } else {
                    $cells .= "<Cell><Data ss:Type="Number">" . $v . "</Data></Cell>n";
                }
            } else {
                $cells .= "<Cell><Data ss:Type="String">" . $v . "</Data></Cell>n";
            }
        endforeach;
        $this->lines[] = "<Row>n" . $cells . "</Row>n";
        unset($arry);
    }

function setWorksheetTitle ($title) {

$title = preg_replace ("/[\|:|/|?|*|[|]]/", "", $title);

$title = substr ($title, 0, 31);

$this->worksheet_title = $title;

}

function generateXML ($filename) {

// deliver header (as recommended in PHP manual)
        header("Content-Type: application/vnd.ms-excel; charset=utf-8");
        header("Content-Disposition: inline; filename="" . $filename . ".xls"");

// print out document to the browser
        // need to use stripslashes for the damn ">"
        echo stripslashes ($this->header);
        echo "n<Worksheet ss:Name="" . $this->worksheet_title . "">n<Table>n";
        echo "<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="110"/>n";
        echo implode ("n", $this->lines);
        echo "</Table>n</Worksheet>n";
        echo $this->footer;
        exit;

}

function write ($filename) // 重点
    {

$content= stripslashes ($this->header);
        $content.= "n<Worksheet ss:Name="" . $this->worksheet_title . "">n<Table>n";
        $content.= "<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="110"/>n";
        $content.= implode ("n", $this->lines);
        $content.= "</Table>n</Worksheet>n";
        $content.= $this->footer;//EXCEL文件
    //error_log($content, 3,$filename);
        if (!file_exists($filename))//判断有没有文件
    {
        fopen($filename,‘a‘);
    }
    $fp = fopen($filename,‘a‘);
    fwrite($fp, $content);//写入文件
    fclose($fp);
    unset($this->lines);//清空内存中的数据
    }

}

页面 
PHP code
include_once"./include/class.excel.PHP";//调用EXCEL类
require_once ‘./include/class.zipfile.PHP‘;//调用大包类 
$xls = new Excel;//实例化
$w=explode("limit",$where_str);//把WHERE
$p=6000; //分页原理
$a=$ip_list_count/$p;//分页原理
if($ip_list_count%$p==0)//分页原理

else//分页原理

for($i=0;$i<=$a;$i++)//循环写出
{
$s=6000*$i;
$ip=$_SG[‘db‘]->fetch_all("select * from main_info".$w[0]." limit ".$s.",".$p);//调用自己写的数据库(数据库培训 数据库认证 )方法,写出数组
$xls->addArray ( $ip );//调用EXCEL 类中addArray 方法
xml1=$xls->write ("./".$i.".xls");//调用EXCEL 类中write 方法
unset($ip);
unset($xml1);
sleep(1);
}

时间: 2024-10-12 20:00:42

PHP写的从数据库导入到EXCEL的相关文章

java导入导出Excel数据的要点记录

< 客户端的B/S架构输出方式 加下划线这部分代码是B/S模式中采用的输出方式, //获得输出流,该输出流的输出介质是客户端浏览器 OutputStream output=response.getOutputStream(); response.reset(); response.setHeader("Content-disposition","attachment; filename=temp.xls"); response.setContentType(&

Java实现Excel导入数据库,数据库中的数据导入到Excel

实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java.sql.Co

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转

效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较   (三)SSIS的简介   (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介绍一下)   (六)SSIS操作过程(生成Package,用来调用)(下一篇随笔将详细讲解制作Package包的过程,图片太多,篇幅过长,因此本文将直接采用生成的Package包进行

Java实现Excel导入数据库,数据库中的数据导入到Excel。。转载

自学资料总结 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java

asp.net导入的excel文件到数据库

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.OleDb; using System.Collections; using System.Data.SqlClient; using Budget

C#将数据库导出成Excel,再从Excel导入到数据库中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.IO; namespace CindyDatabaseProcess { class Program { static void Main(string[] args) { System.Data.DataTable dt1 = null; S

关于导入数据到Excel中对数据库进行去重以及对导入的Excel文件进行去重

插入到数据库去重: 1.将你循环读取的List进行遍历 2.在你即将插入到数据库的方法之前获取你需要查询的数据,执行查询方法 1 devList=deviceDao.findDevice(device.getRfid()); 2 if(devList.size()>0){ 3 messageStr = "数据重复,请重新导入!"; 4 5 }else{ 6 deviceDao.save(device); 7 messageStr = "数据导入成功!"; 8

java实现数据库中的数据导入到Excel

1.添加 mysql-connector-java.1.7-bin.jar和jxl.jar包到项目的lib目录下- 2.数据库名为wiki 3.表名为stu 4.Excel文件目录:d://book.xls 5.编写类:连接mysql的字符串方法.插入的方法.实体类-- 表结构如下 : 链接数据库 表的实体类 将数据库的数据导入到Excel 效果显示

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传excel文件提交到后台,利用form表单提单即可 <form method="post" enctype="multipart/form-data" action="" > <input type="submit"