| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP將mysql數據導入Excel表中

2008-08-27 06:58:17  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  有時寫程序時後台要求把大量數據導入數據庫中,比如考試成績、電話簿等一般都是存放在excel中的數據,這時我們可把excel導出成csv文件,然後通過以下程序即可批量導入數據到數據庫中

  上傳cvs並導入到數據庫中,測試成功(部分代碼不規範,如PHP_SELF那裏要改寫成$_SERVER["PHP_SELF"] )

  PHP代碼

  <?php

  $fname = $_FILES['MyFile']['name'];

  $do = copy($_FILES['MyFile']['tmp_name'],$fname);

  if ($do)

  {

   echo"導入數據成功<br>";

  } else {

   echo "";

  }

  ?>

  <form ENCTYPE="multipart/form-data" ACTION="<?php echo"".$PHP_SELF.""; ?>" METHOD="POST">

   <p>導入CVS數據 <input NAME="MyFile" TYPE="file"> <input VALUE="提交" TYPE="submit">

   </p>

  </form>

  <?

  error_reporting(0);

  //導入CSV格式的文件

  $connect=mysql_connect("localhost","a0530093319","123456") or die("could not connect to database");

  mysql_select_db("a0530093319",$connect) or die (mysql_error());

  $fname = $_FILES['MyFile']['name'];

  $handle=fopen("$fname","r");

  while($data=fgetcsv($handle,10000,","))

  {

   $q="insert into test (code,name,date) values ('$data[0]','$data[1]','$data[2]')";

   mysql_query($q) or die (mysql_error());

  

  }

  fclose($handle);

  ?>

  用php將數據庫導出成excel,測試完全成功

  PHP代碼 www.devdao.com

  <?php

  $DB_Server = "localhost";

  $DB_Username = "root";

  $DB_Password = "";

  $DB_DBName = "ishop";

  $DB_TBLName = "oi_mall_payment";

  

  $savename = date("YmjHis");

  $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect.");

  mysql_query("Set Names 'gbk'");

  $file_type = "vnd.ms-excel";

  $file_ending = "xls";

  header("Content-Type: application/$file_type;charset=big5");

  header("Content-Disposition: attachment; filename=".$savename.".$file_ending");

  //header("Pragma: no-cache");

  

  $now_date = date("Y-m-j H:i:s");

  $title = "數據庫名:$DB_DBName,數據表:$DB_TBLName,備份日期:$now_date";

  

  $sql = "Select * from $DB_TBLName";

  $ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database");

  $result = @mysql_query($sql,$Connect) or die(mysql_error());

  

  echo("$title\n");

  $sep = "\t";

  for ($i = 0; $i < mysql_num_fields($result); $i++) {

   echo mysql_field_name($result,$i) . "\t";

  }

  print("\n");

  $i = 0;

  while($row = mysql_fetch_row($result)) {

   $schema_insert = "";

   for($j=0; $j<mysql_num_fields($result);$j++) {

   if(!isset($row[$j]))

   $schema_insert .= "NULL".$sep;

   elseif ($row[$j] != "")

   $schema_insert .= "$row[$j]".$sep;

   else

   $schema_insert .= "".$sep;

   }

   $schema_insert = str_replace($sep."$", "", $schema_insert);

   $schema_insert .= "\t";

   print(trim($schema_insert));

   print "\n";

   $i++;

  }

  return (true);

  ?>
 
有時寫程序時後台要求把大量數據導入數據庫中,比如考試成績、電話簿等一般都是存放在excel中的數據,這時我們可把excel導出成csv文件,然後通過以下程序即可批量導入數據到數據庫中 上傳cvs並導入到數據庫中,測試成功(部分代碼不規範,如PHP_SELF那裏要改寫成$_SERVER["PHP_SELF"] ) PHP代碼 <?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($do) { echo"導入數據成功<br>"; } else { echo ""; } ?> <form ENCTYPE="multipart/form-data" ACTION="<?php echo"".$PHP_SELF.""; ?>" METHOD="POST"> <p>導入CVS數據 <input NAME="MyFile" TYPE="file"> <input VALUE="提交" TYPE="submit"> </p> </form> <? error_reporting(0); //導入CSV格式的文件 $connect=mysql_connect("localhost","a0530093319","123456") or die("could not connect to database"); mysql_select_db("a0530093319",$connect) or die (mysql_error()); $fname = $_FILES['MyFile']['name']; $handle=fopen("$fname","r"); while($data=fgetcsv($handle,10000,",")) { $q="insert into test (code,name,date) values ('$data[0]','$data[1]','$data[2]')"; mysql_query($q) or die (mysql_error()); } fclose($handle); ?> 用php將數據庫導出成excel,測試完全成功 PHP代碼 [url=http://www.devdao.com]www.devdao.com[/url] <?php $DB_Server = "localhost"; $DB_Username = "root"; $DB_Password = ""; $DB_DBName = "ishop"; $DB_TBLName = "oi_mall_payment"; $savename = date("YmjHis"); $Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect."); mysql_query("Set Names 'gbk'"); $file_type = "vnd.ms-excel"; $file_ending = "xls"; header("Content-Type: application/$file_type;charset=big5"); header("Content-Disposition: attachment; filename=".$savename.".$file_ending"); //header("Pragma: no-cache"); $now_date = date("Y-m-j H:i:s"); $title = "數據庫名:$DB_DBName,數據表:$DB_TBLName,備份日期:$now_date"; $sql = "Select * from $DB_TBLName"; $ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database"); $result = @mysql_query($sql,$Connect) or die(mysql_error()); echo("$title\n"); $sep = "\t"; for ($i = 0; $i < mysql_num_fields($result); $i++) { echo mysql_field_name($result,$i) . "\t"; } print("\n"); $i = 0; while($row = mysql_fetch_row($result)) { $schema_insert = ""; for($j=0; $j<mysql_num_fields($result);$j++) { if(!isset($row[$j])) $schema_insert .= "NULL".$sep; elseif ($row[$j] != "") $schema_insert .= "$row[$j]".$sep; else $schema_insert .= "".$sep; } $schema_insert = str_replace($sep."$", "", $schema_insert); $schema_insert .= "\t"; print(trim($schema_insert)); print "\n"; $i++; } return (true); ?>
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
  免責聲明:本文僅代表作者個人觀點,與王朝網絡無關。王朝網絡登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
© 2005- 王朝網路 版權所有