㈠ 如何通過php將excel的數據導入MySQL中
准備工作: 下載PHP-ExcelReader,下載後用到\phpExcelReader\Excel目錄下的oleread.inc和reader.php兩個文件,並將reader.php文件打開後require_once 'Spreadsheet/Excel/Reader/OLERead.php';屏蔽掉,增加為require_once 'oleread.inc'; 然後直接將這兩個文件復制到伺服器下WAMP,直接復制到WWW目錄下,再將所需要的excel文件考進來我的文件是classify.xls,然後需要一個調用reader.php的文件,源代碼如下:
ExcelToMysql.php
<?php
require_once 'reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk');
$data->read('classify.xls'); //」classify.xls」是指要導入到mysql中的excel文件
@ $db = mysql_connect("localhost", "root", "") or
die("Could not connect to database.");//連接資料庫
mysql_query("set names 'gbk'");//輸出中文
mysql_select_db('japlearn'); //選擇資料庫
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
//以下注釋的for循環列印excel表數據
//以下代碼是將excel表數據【6個欄位】插入到mysql中,根據你的excel表欄位的多少,改寫以下代碼吧!
$sql = "INSERT INTO classify VALUES('".
$data->sheets[0]['cells'][$i][1]."','".
$data->sheets[0]['cells'][$i][2]."','".
$data->sheets[0]['cells'][$i][3]."','".
$data->sheets[0]['cells'][$i][4]."','".$data->sheets[0]['cells'][$i][5]."','".$data->sheets[0]['cells'][$i][6]."')";
echo $sql.'<br />';
$res = mysql_query($sql);
}
?>
把上面代碼注釋的地方替換成自己配置好的數據,如資料庫配置等。運行本機測試地址實現導入。
㈡ php怎樣讀取excel表格內容
常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。
1. 以.csv格式讀取
將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。
優點:跨平台,效率比較高、可以讀寫。
缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。
PHP有自帶的分析.csv函數:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一個由 fopen()、popen() 或 fsockopen() 產生的有效文件指針。
length (可選)必須大於 CVS 文件內最長的一行。在 PHP 5 中該參數是可選的。如果忽略(在 PHP 5.0.4 以後的版本中設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。
delimiter (可選)設置欄位分界符(只允許一個字元),默認值為逗號。
enclosure (可選)設置欄位環繞符(只允許一個字元),默認值為雙引號。該參數是在 PHP 4.3.0 中添加的。 和 fgets() 類似,只除了 fgetcsv() 解析讀入的行並找出 CSV 格式的欄位然後返回一個包含這些欄位的數組。
fgetcsv() 出錯時返回 FALSE,包括碰到文件結束時。
注意: CSV 文件中的空行將被返回為一個包含有單個 null 欄位的數組,不會被當成錯誤。
當然也可以自己手動分析字元串。
還可以利用fputcsv函數將行格式化為 CSV 並寫入文件指針。
2. ODBC鏈接數據源
優點:支持多種格式,cvs, xls等。支持讀寫,使用標准SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。
缺點:值支持windows伺服器
3. PHP自定義類
優點:跨平台。某些類支持寫操作。支持.xls二進制文件
常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。
phpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。
該 class 使用的方法可以參考網站下載回來的壓縮檔中的 example.php。
不過我下載回來的 (版本 2009-03-30),有兩點要注意:
reader.php 中的下面這行要修改
將 require_once 『Spreadsheet/Excel/Reader/OLERead.php』;
改為 require_once 『oleread.inc』;
example.php 中
修改 $data->setOutputEncoding(』CP1251′);
為 $data->setOutputEncoding(』CP936′);
example2.php 中
修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));
為 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
不然中文會有問題。
繁體的話可以修改為CP950、日文是CP932,具體可參考codepage說明。
修改 $data->read(』jxlrwtest.xls』) 為自己的 excel 文件名,zip 檔中附的 jxlrwtest.xls 應該是壞了。
㈢ dwz+thinkphp 導入excel返回JSON數據處理總數是 錯誤[object object]
是不是處理的數據,在excel中有null的?要判斷一下
㈣ 求關於php excel導入大數據到mysql的解決辦法
下載 PHPExcel
require_once('./PHPExcel/IOFactory.php');
$filePath='D:/xxx.xlsx';//excel文件名
$objReader=newPHPExcel_Reader_Excel2007();//具體查看(Documentation/Examples/Reader/exampleReader01.php)
$objPHPExcel=$objReader->load($filePath);
$sheetData=$objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$insql='insertinto表名(x,x,x)valeus';
//遍歷數組$sheetData
//如果有標題先刪除unset($sheetData[1]);
foreach($sheetDataas$k=>$data){
$insql.='('.$data['A'].','.$data['B'].','.$data['C'].'),';
//一次插入100條數據減少資料庫壓力
if(($k+1/100)==0){
$insql=rtrim($insql,',').';';//將最後的逗號替換成分好
//插入資料庫並且重置字元串$insql
//或者保存到文件中利用source命令插入資料庫
}
}
㈤ php把excel導入到mysql資料庫 的代碼
1,在excel表每一行後加上=CONCATENATE("insertintotable(欄位1,欄位2,欄位n)values('",欄位1坐標,"','",欄位2坐標,"','",欄位n坐標,"');")
2,將這一列復制到文本文檔,以方便瀏覽和調試錯誤
3,使用運行sql的工具(我將他們都放到Navicat中創建查詢再運行就ok了)4,瀏覽資料庫,修改不合理的欄位及值
你把下面的這段粘到excel裡面對應的位置
=CONCATENATE("insertintokeywords(id,name,pwd)values('",坐標,"','",坐標,"','",坐標,"');")
按照你表格的排列對好,比如
最後把這一列復制到文本文檔,你會看到全是sql的插入語句;
最後用Navicat之類的工具執行這些語句就Ok了。
㈥ 怎麼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,官方網站: http://www.codeplex.com/PHPExcel。
2:使用PHP-ExcelReader,下載地址: http://sourceforge.net/projects/phpexcelreader
舉例:
<?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 "
";
}
?>
總結 php導出Excel php導入Excel PhpExcel使用說明 PhpExcel使用手冊
方法一:特點,簡單,省心,製表符" "用戶分割同一行中的列,換行符"
"可以開啟下一行,還能夠自動識別日期格式,貨幣格式等!
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
//輸出內容如下:
echo"姓名"." ";
echo"年齡"." ";
echo"學歷"." ";
echo"
";
echo"張三"." ";
echo"25"." ";
echo"本科"." ";
?>
動態版
<?
$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(http://code.google.com/p/php-excel/downloads/list),代碼也很簡單:
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,官方網站: http://www.codeplex.com/PHPExcel
導入導出都成,可以導出office2007格式,同時兼容2003。
下載下來的包中有文檔和例子,大家可以自行研究。
抄段例子出來:
http://www.codeplex.com/PHPExcel
<?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:workspaceiznaligy_ehdev_srcincludesPHPExcel' . 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->plicateStyle($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');
?>
㈦ 如何將excel轉換成json格式
1、首先打開excel,找到「插入」,「我的載入項」,點擊「我的載入項」。
2、在彈出的我的載入項窗口裡面,選擇「excel
to
json」,如果沒有的話,可以網路下office
應用商店,去免費載入一下就可以了。
3、在excel右邊會彈出這個插件。
4、在excel部分輸入需要轉換的數據內容,然後選中需要轉換成json的部分,在右側的excel
to
json裡面,點擊go。
5、轉換完成了之後,會顯示出來轉換完成的json,大家可以直接復制或者導出,本例子中選擇save
as,就是另存的意思。
6、另存會彈出一個窗口,選擇保存,就會把轉換的json保存到你的電腦上了。
謝謝採納
㈧ 如何用php實現將excel導入到資料庫中
把excel 改為 cvs文件
<?
//連接資料庫文件
$connect=mysql_connect("localhost","admin","admin") or die("鏈接資料庫失敗!");
//連接資料庫(test)
mysql_select_db("testcg",$connect) or die (mysql_error());
$temp=file("test.csv");//連接EXCEL文件,格式為了.csv
for ($i=0;$i <count($temp);$i++)
{
$string=explode(",",$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值
//將EXCEL文件中每行記錄的值插入到資料庫中
$q="insert into ceshi (name,num,dom) values('$string[0]','$string[1]','$string[2]');";
mysql_query($q) or die (mysql_error());
if (!mysql_error());
{
echo " 成功導入數據!";
}
echo $string[4]."\n";
unset($string);
}
?>
㈨ PHP將Excel導入資料庫中
如果小的話,可以直接導入excel文件,如果大的話,請先存成csv文件,然後通過mysql 的load data導入資料庫
㈩ php讀取excel並寫入到資料庫
用 php Win32 OLE
##Using OLE;
read('Book1.xls');
// print number of rows, columns and sheets
echo "Number of sheets: " . sizeof($excel->sheets) . "\n";
for ($x=0; $xsheets); $x++) {
echo "Number of rows in sheet " . ($x+1) . ": " . $excel->sheets[$x]["numRows"] . "\n";
echo "Number of columns in sheet " . ($x+1) . ": " . $excel->sheets[$x]["numCols"] . "\n";