转载请注明来源:https://www.cnblogs.com/hookjc/

Excel:

<?php
header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=11.xls ");
header("Content-Transfer-Encoding: binary ");

$filename="<table>
   <tr>
    <th>left_1</th>
    <td>right_1</td>
   </tr>
   <tr>
    <th>left_2</th>
    <td>right_2</td>
   </tr>
  </table>";

//$filename=iconv("utf-8", "gb2312", $filename);

echo $filename;
?>

<?php
class Db {
    var $conn;

    /***************************************************************************
     * 连接数据库
     * return:MySQL 连接标识,失败返回FALSE
     **************************************************************************/
    function Db($host="localhost",$user="root",$pass="123456",$db="juren_gaokao") {
        if(!$this->conn=mysql_connect($host,$user,$pass))
            die("can't connect to mysql sever");
        mysql_select_db($db,$this->conn);
        mysql_query("SET NAMES 'UTF-8'");
    }

    /***************************************************************************
     * 执行SQL查询
     * return:查询结构集 resource
     **************************************************************************/
    function execute($sql) {
        return mysql_query($sql,$this->conn);
    }

    /***************************************************************************
     * 返回结构集中行数
     * return:number 数字
     **************************************************************************/
    function findCount($sql) {
        $result=$this->execute($sql);
        return mysql_num_rows($result);
    }

    /***************************************************************************
     * 执行SQL查询
     * return:array 数组
     **************************************************************************/
    function findBySql($sql) {
        $array=array();
        $result=mysql_query($sql);
        $i=0;
        while($row=mysql_fetch_assoc($result)) {
            $array[$i]=$row;
            $i++;
        }
        return $array;
    }

    /***************************************************************************
    *$con的几种情况
    *空:返回全部记录
    *array:eg. array('id'=>'1') 返回id=1的记录
    *string :eg. 'id=1' 返回id=1的记录
    * return:json 格式数据
    ***************************************************************************/
    function toExtJson($table,$start="0",$limit="10",$cons="") {
        $sql=$this->generateSql($table,$cons);
        $totalNum=$this->findCount($sql);
        $result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
        $resultNum = count($result);//当前结果数
        $str="";
        $str.= "{";
        $str.= "'totalCount':'?$totalNum',";
        $str.="'rows':";
        $str.="[";
        for($i=0;$i<$resultNum;$i++) {
            $str.="{";
            $count=count($result[$i]);
            $j=1;
            foreach($result[$i] as $key=>$val) {
                if($j<$count) {
                    $str.="'".$key."':'".$val."',";
                }
                elseif($j==$count) {
                    $str.="'".$key."':'".$val."'";
                }
                $j++;
            }

            $str.="}";
            if ($i != $resultNum-1) {
                $str.= ", ";
            }
        }
        $str.="]";
        $str.="}";
        return  $str;
    }

    /***************************************************************************
     * $table:表名
     * $cons:sql条件
     * return:SQL语句
     **************************************************************************/
    function generateSql($table,$cons) {
        $sql="";//sql条件
        $sql="select * from ".$table;
        if($cons!="") {
            if(is_array($cons)) {
                $k=0;
                foreach($cons as $key=>$val) {
                    if($k==0) {
                        $sql.="where '";
                        $sql.=$key;
                        $sql.="'='";
                        $sql.=$val."'";
                    }else {
                        $sql.="and '";
                        $sql.=$key;
                        $sql.="'='";
                        $sql.=$val."'";
                    }
                    $k++;
                }
            }else {
                $sql.=" where ".$cons;
            }
        }
        return $sql;
    }

   
    /***************************************************************************
     * $table:表名
     * $cons:条件
     * return:XML格式文件
     **************************************************************************/
    function toExtXml($table,$start="0",$limit="10",$cons="") {
        $sql=$this->generateSql($table,$cons);
        $totalNum=$this->findCount($sql);
        $result=$this->findBySql($sql." LIMIT ".$start." ,".$limit);
        $resultNum = count($result);//当前结果数
        header("Content-Type: text/xml");
        $xml='<?xml version="1.0"  encoding="utf-8" ?>';
        $xml.="<xml>";
        $xml.="<totalCount>".$totalNum."</totalCount>";
        $xml.="<items>";
        for($i=0;$i<$resultNum;$i++) {
            $xml.="<item>";
            foreach($result[$i] as $key=>$val)
                $xml.="<".$key.">".$val."</".$key.">";
            $xml.="</item>";
        }
       
        $xml.="</items>";
        $xml.="</xml>";
        return $xml;
    }

    /***************************************************************************
     * $table:表名
     * $mapping:数组格式头信息$map=array('No','Name','Email','Age');
     * $fileName:WORD文件名称
     * return:WORD格式文件
     **************************************************************************/
    function toWord($table,$mapping,$fileName) {
        header('Content-type: application/doc');
        header('Content-Disposition: attachment; filename="'.$fileName.'.doc"');
        echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
       xmlns:w="urn:schemas-microsoft-com:office:word"
       xmlns="[url=http://www.w3.org/TR/REC-html40]http://www.w3.org/TR/REC-html40[/url]">
                <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <title>'.$fileName.'</title>
                </head>
                <body>';
        echo'<table border=1><tr>';
        if(is_array($mapping)) {
            foreach($mapping as $key=>$val)
                echo'<td>'.$val.'</td>';
        }
        echo'</tr>';
        $results=$this->findBySql('select * from '.$table);
        foreach($results as $result) {
            echo'<tr>';
            foreach($result as $key=>$val)
                echo'<td>'.$val.'</td>';
            echo'</tr>';
        }
        echo'</table>';
        echo'</body>';
        echo'</html>';
    }

    /***************************************************************************
     * $table:表名
     * $mapping:数组格式头信息$map=array('No','Name','Email','Age');
     * $fileName:Excel文件名称
     * return:Excel格式文件
     **************************************************************************/
    function toExcel($table,$mapping,$fileName) {
        header("Content-type:application/vnd.ms-excel");
        header("Content-Disposition:filename=".$fileName.".xls");
        echo'<html xmlns:o="urn:schemas-microsoft-com:office:office"
        xmlns:x="urn:schemas-microsoft-com:office:excel"
        xmlns="[url=http://www.w3.org/TR/REC-html40]http://www.w3.org/TR/REC-html40[/url]">
        <head>
        <meta http-equiv="expires" content="Mon, 06 Jan 1999 00:00:01 GMT">
        <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
        <!--[if gte mso 9]><xml>
        <x:ExcelWorkbook>
        <x:ExcelWorksheets>
        <x:ExcelWorksheet>
        <x:Name></x:Name>
        <x:WorksheetOptions>
        <x:DisplayGridlines/>
        </x:WorksheetOptions>
        </x:ExcelWorksheet>
        </x:ExcelWorksheets>
        </x:ExcelWorkbook>
        </xml><![endif]-->
        </head>
        <body link=blue vlink=purple leftmargin=0 topmargin=0>';
        echo'<table width="100%" border="0" cellspacing="0" cellpadding="0">';
        echo'<tr>';
        if(is_array($mapping)) {
            foreach($mapping as $key=>$val)
                echo'<td>'.$val.'</td>';
        }
        echo'</tr>';
        $results=$this->findBySql('select * from '.$table);
        foreach($results as $result) {
            echo'<tr>';
            foreach($result as $key=>$val)
                echo'<td>'.$val.'</td>';
            echo'</tr>';
        }
        echo'</table>';
        echo'</body>';
        echo'</html>';
    }

   
    function Backup($table) {
        if(is_array ($table)) {
            $str="";
            foreach($table as $tab)
                $str.=$this->get_table_content($tab);
            return $str;
        }else {
            return $this->get_table_content($table);
        }
    }

   
    /***************************************************************************
     * 备份数据库数据到文件
     * $table:表名
     * $file:文件名
     **************************************************************************/
    function Backuptofile($table,$file) {
        header("Content-disposition: filename=?$file.sql");//所保存的文件名
        header("Content-type: application/octetstream");
        header("Pragma: no-cache");
        header("Expires: 0");
        if(is_array ($table)) {
            $str="";
            foreach($table as $tab)
                $str.=$this->get_table_content($tab);
            echo $str;
        }else {
            echo $this->get_table_content($table);
        }
    }
   
    function Restore($table,$file="",$content="") {
        //排除file,content都为空或者都不为空的情况
        if(($file==""&&$content=="")||($file!=""&&$content!=""))
            echo"参数错误";
        $this->truncate($table);
        if($file!="") {
            if($this->RestoreFromFile($file))
                return true;
            else
                return false;
        }
        if($content!="") {
            if($this->RestoreFromContent($content))
                return true;
            else
                return false;
        }
    }
   
    //清空表,以便恢复数据
    function truncate($table) {
        if(is_array ($table)) {
            $str="";
            foreach($table as $tab)
                $this->execute("TRUNCATE TABLE ?$tab");
        }else {
            $this->execute("TRUNCATE TABLE ?$table");
        }
    }
   
    function get_table_content($table) {
        $results=$this->findBySql("select * from $table");
        $temp = "";
        $crlf="rn";
        foreach($results as $result) {
            /*(";
          foreach(?$result as ?$key=>?$val)
          {
            $schema_insert .= " `".?$key."`,";
          }
           $schema_insert = ereg_replace(",?$", "", ?$schema_insert);
           $schema_insert .= ")
            */
            $schema_insert = "INSERT INTO  ?$table VALUES (";
            foreach($result as $key=>$val) {
                if($val != "")
                    $schema_insert .= " '".addslashes($val)."',";
                else
                    $schema_insert .= "NULL,";
            }
            $schema_insert = ereg_replace(",?$", "", $schema_insert);
            $schema_insert .= ");?$crlf";
            $temp = $temp.$schema_insert ;
        }
        return $temp;
    }

   
    function RestoreFromFile($file) {
        if (false !== ($fp = fopen($file, 'r'))) {
            $sql_queries = trim(fread($fp, filesize($file)));
            $this->splitMySqlFile($pieces, $sql_queries);
            foreach ($pieces as $query) {
                if(!$this->execute(trim($query)))
                    return false;
            }
            return true;
        }
        return false;
    }
   
    function RestoreFromContent($content) {
        $content = trim($content);
        $this->splitMySqlFile($pieces, $content);
        foreach ($pieces as $query) {
            if(!$this->execute(trim($query)))
                return false;
        }
        return true;
    }
   
    function splitMySqlFile(&$ret, $sql) {
        $sql= trim($sql);
        $sql=split('',$sql);
        $arr=array();
        foreach($sql as $sq) {
            if($sq!="");
            $arr[]=$sq;
        }
        $ret=$arr;
        return true;
    }
}

来源:python脚本自动迁移

php导出excel xml word的更多相关文章

  1. RDLC - 后台代码直接导出Excel/PDF/Word格式

    最近做报表功能,用到了.net的报表组件rdlc. 其中有个功能就是后台代码直接输出Excel/PDF/Word格式的文件,网上看了些资源,做个总结: 参考地址 我直接贴出代码: //自动导出exce ...

  2. ASP.NET-GridView之导出excel或word

    在CS阶段我们涉及到表格的导出,再Web开发同样可以实现,而且实现形式多种多样.以下面的例子说明表格导出到excel和word 这里用到了一个后台方法输出流形成***文件的的公共方法 DEMO < ...

  3. EasyOffice-.NetCore一行代码导入导出Excel,生成Word

    简介 Excel和Word操作在开发过程中经常需要使用,这类工作不涉及到核心业务,但又往往不可缺少.以往的开发方式在业务代码中直接引入NPOI.Aspose或者其他第三方库,工作繁琐,耗时多,扩展性差 ...

  4. c#通过datatable导出excel和word

    /// <summary> /// 导出datatable到word /// </summary> /// <param name="dg">需 ...

  5. 文件导出Excel、Word、Pdf

    如果要将查询结果导出Excel,只要将页面的Context-Type修改下: header( "Content-Type: application/vnd.ms-excel"> ...

  6. 导出excel、word、csv文件方法汇总

    http://www.woaic.com/2012/06/64 excel文件主要是输出html代码.以xls的文本格式保存文件. 生成excel格式的代码: /// <summary> ...

  7. mysql数据库导出excel xml等格式文件

    http://jingyan.baidu.com/article/ac6a9a5e43a62e2b653eac83.html

  8. Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布

    Excel和Word 简易工具类,JEasyPoi 2.1.5 版本发布 摘要: jeasypoi 功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导 ...

  9. Spring Boot 系列教程12-EasyPoi导出Excel下载

    Java操作excel框架 Java Excel俗称jxl,可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件,现在基本没有更新了 http://jxl.sourcef ...

随机推荐

  1. Django项目部署到Apache服务器上

    之前写了把Django部署到XAMPP上,但是有bug,翻apache日志的时候发现会无法import _ssl,然后我就怒而直接装apache2了 配置方法大约和这篇文章差不多 安装必要的包 sud ...

  2. [C++]使用vector描述线性表定义及基本操作

    #ifndef VECTORLIST_H #define VECTORLIST_H #include<iostream> #include"linearlist.h" ...

  3. MySQL数据操作与查询笔记 • 【第3章 DDL 和 DML】

    全部章节   >>>> 本章目录 3.1 使用 DDL 定义数据库表结构 3.1.1 SQL 简介 3.1.2 维护数据库和创建数据表 3.2 使用 DDL 维护数据库表结构 ...

  4. 线性基(Linear Basis)学习笔记

    前言 我看网络上没有什么非常系统的教学,可能是我太菜了吧,现在才学,做个记录给自己看. 简略介绍 一个数集能两两异或,能表出许多新的数. 线性基是一个集合,能够在记录最少的数的基础上,表示出一个等价的 ...

  5. golang vue 使用 websocket 的例子

    一. 编写golang服务端 1.导入必要的websocket包,golang.org/x/net/websocket 或 github.com/golang/net/websocket 2.编写消息 ...

  6. 深入浏览器工作原理和JS引擎(V8引擎为例)

    浏览器工作原理和JS引擎 1.浏览器工作原理 在浏览器中输入查找内容,浏览器是怎样将页面加载出来的?以及JavaScript代码在浏览器中是如何被执行的? 大概流程可观察以下图: 首先,用户在浏览器搜 ...

  7. quasar框架在store中使用router跳转页面报错

    网上一通百度,终于在这篇博客中找到原因.  https://www.cnblogs.com/remly/p/12995936.html 原因是: 在router中导出了一个工厂函数, 既然是一个函数, ...

  8. xshell 所选的用户密钥未在远程主机上注册;无法加载密钥

    他山之石 https://zhuanlan.zhihu.com/p/92528287 安全起见,服务器最近的安全策略准备进行更改,逐渐由原来的密码登录更换为密钥登录认证. 于是今天把服务器上的id_r ...

  9. 新增访客数量MR统计之MR数据输出到MySQL

    关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...

  10. 学习笔记--我的第一个Java程序

    我的第一个Java程序 // pubilc 表示公开的 // class 表示定义一个类 // HelloWorld 表示一个类名 public class HelloWorld { // 表示定义一 ...