搜尋
首頁後端開發php教程Mysql数据库导出替Excel(ODBC驱动)

Mysql数据库导出为Excel(ODBC驱动)

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php date_default_timezone_set('Asia/Shanghai');        /*     [email&#160;protected]:[email&#160;protected]     *在本程序不侵犯任何公司或个人权利的情况下:     *本程序遵循GPL v2许可证分发,详情查看http://www.gnu.org/copyleft/lesser.html     *如果本程序已经使用他人专利,本程序将按照专利持有人许可进行使用     *如果本程序侵犯了您的专利,请及时联系作者(上方邮箱即可),本人及时会做出更正声明,如有不便敬请谅解。     *本类实现:     *只要填写正确的mysql数据库、表信息自动将Mysql数据库的内容导出为Excel文件,一键完成,需要ODBC的支持,此为Windows版本     *注意:填写的时候Excel文件只需要填写文件名即可,导出Excel为是2003版本。     *          因为本人水平有限,必须按照示例程序的样本填写完毕方可顺利执行     *          本版本中存在已知瑕疵:     *          1、Mysql数据库出错会输出错误信息。Release版本请自行删除保证服务器信息安全     *          2、odbc连接部分没有做出错误处理,Release版本请自行添加错误处理部分(mysql一样)    */    class mysql2Xls{        private $currDir;        //当前目录名使用dirname(__FILE__)获取        private $srcData;    //Mysql获取的数据数组,此为2维数组        private $srcColumn;    //Mysql数据库的列名,为了将列名对应到Excel文件中的第一行,此属性为1维数组        public $xlsName;            //Excel文件的文件名,不需要添加后缀,后缀是自动添加的,如果需要设置后缀,请在setXlsName函数中更改后缀        private $host;                //本行一下五行为Mysql的连接设置        private $userName;        private $pwd;        private $dbName;        private $tbName;                public function __construct(){            $this->currDir = dirname(__FILE__);        }                /* 获取Mysql的列名称 */        public function getSrcColumn(){            $handle = @mysql_connect($this->host,$this->username,$this->pwd);            $this->srcColumn = array();            if(is_bool($handle)){                echo "====**====<br>";                echo "Mysql连接出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_select_db($this->dbName,$handle);            if($handle == FALSE){                echo "====**====<br>";                echo "Mysql选择数据库出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_query('describe '.$this->tbName,$handle);            if(is_bool($ret)){                echo "====**====<br>";                echo "Mysql语句执行出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            while(($data = mysql_fetch_array($ret)) != FALSE){                array_push($this->srcColumn,$data['Field']);            }            mysql_free_result($ret);            mysql_close($handle);            return $this->srcColumn;        }                /* 获取指定的Mysql数据库表中的内容 */        public function getSrcData(){            $handle = @mysql_connect($this->host,$this->username,$this->pwd);            $this->srcData = array();            if(is_bool($handle)){                echo "====**====<br>";                echo "Mysql连接出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_select_db($this->dbName,$handle);            if($handle == FALSE){                echo "====**====<br>";                echo "Mysql选择数据库出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            $ret = @mysql_query('select * from '.$this->tbName,$handle);            if(is_bool($ret)){                echo "====**====<br>";                echo "Mysql语句执行出错.<br>文件:".(__FILE__)." <br>行号:".(__LINE__)."<br>错误:".mysql_error();                echo "<br>====**====<br>";                exit(0);            }            while(($data = mysql_fetch_array($ret)) != FALSE){                array_push($this->srcData,$data);            }            mysql_free_result($ret);            mysql_close($handle);            return $this->srcData;        }                /* 主力部分 将Mysql数据库中的内容导出为Excel文件 */        public function m2Xls(){            $handle = odbc_connect("Driver={MicroSoft Excel Driver (*.xls)};READONLY=false;CREATE_DB=\"".$this->xlsName."\";Dbq=".$this->xlsName,"","");            $sql = 'create table '.$this->tbName.'(';            foreach($this->srcColumn as $value){                $sql .= ($value." text,");            }            $sql = substr($sql,0,strlen($sql)-1);            $sql .= ")";            $ret = odbc_exec($handle,$sql);            //以上内容是创建一个Excel文件 并将Mysql的列转移到Excel文件中去。            foreach($this->srcData as $value){                $sql = 'insert into ['.$this->tbName.'$] values(';                for($i=0;$i<count .="iconv("UTF-8","GB2312","'".$value[$i]."',");" substr echo odbc_exec public function setmysqlargs>host = $host;            $this->username = $username;            $this->pwd = $pwd;            $this->dbName = $dbName;            $this->tbName = $tbName;        }                /* 设置Excel数据库的名称 */        public function setXlsName($xlsName){            $this->xlsName = $this->currDir."\\".$xlsName.".xls";            return $this->xlsName;        }    }        /*以下部分是测试功能的,可删除*/    header("Content-Type:text/html;charset=UTF-8");    $mysql2xls = new mysql2Xls();    $mysql2xls->setMysqlArgs('localhost','root','******','others','zhuifeng');    $mysql2xls->setXlsName('test');    $mysql2xls->getSrcColumn();    $mysql2xls->getSrcData();     $mysql2xls->m2Xls();?><div class="clear">
                 
              
              
        
            </div></count>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP中的依賴注入:避免常見的陷阱PHP中的依賴注入:避免常見的陷阱May 16, 2025 am 12:17 AM

DependencyInjection(DI)inPHPenhancescodeflexibilityandtestabilitybydecouplingdependencycreationfromusage.ToimplementDIeffectively:1)UseDIcontainersjudiciouslytoavoidover-engineering.2)Avoidconstructoroverloadbylimitingdependenciestothreeorfour.3)Adhe

如何加快PHP網站:性能調整如何加快PHP網站:性能調整May 16, 2025 am 12:12 AM

到Improveyourphpwebsite的實力,UsEthestertate:1)emplastOpCodeCachingWithOpcachetCachetOspeedUpScriptInterpretation.2)優化的atabasequesquesquesquelies berselectingOnlynlynnellynnessaryfields.3)usecachingsystemssslikeremememememcachedisemcachedtoredtoredtoredsatabaseloadch.4)

通過PHP發送大規模電子郵件:有可能嗎?通過PHP發送大規模電子郵件:有可能嗎?May 16, 2025 am 12:10 AM

是的,ItispossibletosendMassemailswithp.1)uselibrarieslikeLikePhpMailerorSwiftMailerForeffitedEmailsending.2)enasledeLaysBetenemailstoavoidSpamflagssspamflags.3))

PHP中依賴注入的目的是什麼?PHP中依賴注入的目的是什麼?May 16, 2025 am 12:10 AM

DependencyInjection(DI)inPHPisadesignpatternthatachievesInversionofControl(IoC)byallowingdependenciestobeinjectedintoclasses,enhancingmodularity,testability,andflexibility.DIdecouplesclassesfromspecificimplementations,makingcodemoremanageableandadapt

如何使用PHP發送電子郵件?如何使用PHP發送電子郵件?May 16, 2025 am 12:03 AM

使用PHP發送電子郵件的最佳方法包括:1.使用PHP的mail()函數進行基本發送;2.使用PHPMailer庫發送更複雜的HTML郵件;3.使用SendGrid等事務性郵件服務提高可靠性和分析能力。通過這些方法,可以確保郵件不僅到達收件箱,還能吸引收件人。

如何計算PHP多維數組的元素總數?如何計算PHP多維數組的元素總數?May 15, 2025 pm 09:00 PM

計算PHP多維數組的元素總數可以使用遞歸或迭代方法。 1.遞歸方法通過遍歷數組並遞歸處理嵌套數組來計數。 2.迭代方法使用棧來模擬遞歸,避免深度問題。 3.array_walk_recursive函數也能實現,但需手動計數。

PHP中do-while循環有什麼特點?PHP中do-while循環有什麼特點?May 15, 2025 pm 08:57 PM

在PHP中,do-while循環的特點是保證循環體至少執行一次,然後再根據條件決定是否繼續循環。 1)它在條件檢查之前執行循環體,適合需要確保操作至少執行一次的場景,如用戶輸入驗證和菜單系統。 2)然而,do-while循環的語法可能導致新手困惑,且可能增加不必要的性能開銷。

PHP中如何哈希字符串?PHP中如何哈希字符串?May 15, 2025 pm 08:54 PM

在PHP中高效地哈希字符串可以使用以下方法:1.使用md5函數進行快速哈希,但不適合密碼存儲。 2.使用sha256函數提高安全性。 3.使用password_hash函數處理密碼,提供最高安全性和便捷性。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)