導航:首頁 > 編程語言 > php編輯excel表格

php編輯excel表格

發布時間:2024-07-07 03:55:37

⑴ 基於php中使用excel的簡單介紹

在工作中需要處理多語言的翻譯問題,翻譯都是寫在excel表格裡面。為了處理方便我就保留中文和英文兩列。
這樣需要將這些數據從excel中取出來,然乎保存在excel的數組中,通過使用循環數組將相應的數據放入到資料庫中。
所以工作的第一步就是要將數據從excel中取出來。這里我使用到了一個開源php處理excel類:phpexcel.
該項目的詳細信息
http://phpexcel.codeplex.com/

我目前使用的是phpexcel1.7.3版本,
壓縮後裡面有一個PHPExcel和PHPExcel.php文件。
我們主要使用那個PHP文件。見下圖文件目錄結構
這個版本據說是可以支持excel2007,但是我使用2007編輯的xlsx是無法獲得該庫的支持。於是乎我就將它轉化為2003。感覺支持地很好。
下面介紹一下具體的使用:
復制代碼
代碼如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$php_excel_obj
=
new
PHPExcel();
$php_reader
=
newPHPExcel_Reader_Excel2007();
if(!$php_reader->canRead($file_name)){

$php_reader=
new
PHPExcel_Reader_Excel5();

if(!$php_reader->canRead($file_name)){

echo'NO
Excel!'

}
}
$php_excel_obj
=
$php_reader->load($file_name);
$current_sheet
=$php_excel_obj->getSheet(0);
上面的主要功能是初始化相關的excel類,並裝載excel第一個sheet
復制代碼
代碼如下:
$all_column
=$current_sheet->getHighestColumn();
$all_row
=$current_sheet->getHighestRow();
以上分別獲得該表格的最大列值(字母表示如:『G'),和最大的行數(數值表示)
下面將使用循環來講excel裡面的數據讀到excel中:
復制代碼
代碼如下:
$all_arr
=
array();
$c_arr
=
array();
//字元對照表
for($r_i
=
1;
$r_i<=$all_row;
$r_i++){

$c_arr=
array();

for($c_i=
'A'
$c_i<=
'B'
$c_i++){

$adr=
$c_i
.
$r_i;

$value=
$current_sheet->getCell($adr)->getValue();

if($c_i==
'A'
&&
empty($value)
)
break;

if(is_object($value))
$value=
$value->__toString();

$c_arr[$c_i]=
$value;

}

$c_arr&&
$all_arr[]
=
$c_arr;
}
下面簡單地介紹一下phpexcel的寫操作,這個操作經常用於將資料庫中的數據導入到excel中,便於展示和做成更美觀的效果。
復制代碼
代碼如下:
require_once('./phpexcel1.7.3/PHPExcel.php');
$excel_obj
=
new
PHPExcel();
$objWriter
=
newPHPExcel_Writer_Excel5($excel_obj);
$excel_obj->setActiveSheetIndex(0);
$act_sheet_obj=$excel_obj->getActiveSheet();
$act_sheet_obj->setTitle('sheet');
$act_sheet_obj->setCellValue('A1',
'字元串內容');
$act_sheet_obj->setCellValue('A2',
26);
$file_name
=
"output.xls";
$objWriter->save($file_name);
代碼很簡單,
首先初始化相關的excel寫類,然後寫入數據,最後保存為xls文件。
輸出的效果見圖

⑵ PHP鎴栬卝s鎬庝箞瀹炵幇excel鍦ㄧ嚎棰勮

PHPExcelReader姣旇緝杞婚噺綰э紝浠呮敮鎸丒xcel鐨勮誨彇錛屽疄闄呬笂灝辨槸涓涓猂eader銆備絾鏄鍙鎯滅殑鏄涓嶈兘澶熸敮鎸丒xcel 2007鐨勬牸寮忥紙.xlsx錛

PHPExcel姣旇緝寮哄ぇ錛岃兘澶熷皢鍐呭瓨涓鐨勬暟鎹杈撳嚭鎴怑xcel鏂囦歡錛屽悓鏃惰繕鑳藉熷笶xcel鍋氬悇縐嶆搷浣滐紝涓嬮潰涓昏佷粙緇嶄笅濡備綍浣跨敤PHPExcel榪涜孍xcel 2007鏍煎紡錛.xlsx錛夋枃浠剁殑璇誨彇銆

涓嬭澆PHPExcel鍚庝繚瀛樺埌鑷宸辯殑綾繪枃浠剁洰褰曚腑錛岀劧鍚庝嬌鐢ㄤ互涓嬩唬鐮佸彲浠ユ墦寮Excel 2007錛坸lsx錛夋牸寮忕殑鏂囦歡錛
<?php

require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php'; //淇鏀逛負鑷宸辯殑鐩褰
echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
$objReader = PHPExcel_IOFactory::createReaderForFile($filename);
$objPHPExcel = $objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
?>

杈撳嚭$date鍙橀噺灝辮兘澶熺湅鍒版枃浠朵腑鐨勫唴瀹逛簡銆侾HPExcel浣跨敤PHPExcel_IOFactory榪欎釜綾繪潵鑷鍔ㄥ尮閰嶆墍涓婁紶鐨勬枃浠剁被鍨嬶紝褰撶劧鎴戜滑涔熷彲浠ヨ嚜宸卞埗瀹氳佽В鏋愮殑鏂囦歡綾誨瀷銆備箣鍚庨氳繃load鏂規硶錛屽皢PHP鏂囦歡鍔犺澆鍒皁bjPHPExcel瀵硅薄涓銆傚傛灉Excel鏂囦歡鏈夊氫釜Sheet錛屽彲浠ラ氳繃setActiveSheetIndex鏉ヨ劇疆褰撳墠媧誨姩鐨凷heet銆傚備綍閫氳繃Sheet鍚嶆潵鑾峰緱褰撳墠Sheet鎴戣繕涓嶇煡閬擄紝濡傛灉鏈夌煡閬撶殑鍙浠ョ珯鍐呮垜銆

闇瑕佹敞鎰忕殑鏄錛屽逛簬Excel涓鐨勬棩鏈熸牸寮忥紝PHPExcel璇誨嚭鏉ョ殑鏄涓嶆槸鏃ユ湡綾誨瀷錛岄渶瑕佹垜浠浣跨敤浠ヤ笅鏂規硶鏉ヨ繘琛屾棩鏈熺被鍨嬭漿鎹銆

echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
涓嬮潰鐨勪唬鐮佹樉紺轟簡濡備綍閬嶅巻鏄劇ずExcel鐨勫唴瀹癸細

<table id="table_id">
<?php
$objWorksheet = $objPHPExcel->getActiveSheet();
$i = 0;
foreach($objWorksheet->getRowIterator() as $row){
?>
<tr>
<?php
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
if( $i == 0 ){
echo '<thead>';
}
foreach($cellIterator as $cell){
echo '<td>' . $cell->getValue() . '</td>';
}
if( $i == 0 ){
echo '</thead>';
}
$i++;
?>
</tr>
<?php
}
?>
</table>

⑶ 鎯抽棶涓狿HP鎿嶄綔EXCEL鐨勯棶棰樸傘傘

灝$Workbook->saveas($url);鏀逛負
$Workbook->save();
璇曡瘯

鐪嬬綉涓婁竴鑸鐢 PHPExcel鎿嶄綔 Excel鏂囦歡錛
鍙傝冿細
http://wenku..com/link?url=OQaFbS_Ru2sQukfuqaugfzlPMaB-niOg1vt7C

⑷ php生成excel完整實例代碼

下載phpexcel類庫 代碼如下:
<?php
require_once('PHPExcel.php');
require_once('PHPExcel/IOFactory.php');
$objPHPExcel=new PHPExcel();
$iofactory=new IOFactory();
//獲得數據 ---一般是從資料庫中獲得數據
$data=array(
0=>array('id'=>2013,'name'=>'張某某','age'=>21),
1=>array('id'=>201,'name'=>'EVA','age'=>21)
);
//設置excel列名
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','編號');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1','姓名');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1','年齡');
//把數據循環寫入excel中
foreach($data as $key => $value){
$key+=2;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$key,$value['id']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$key,$value['name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$key,$value['age']);
}
//excel保存在根目錄下 如要導出文件,以下改為注釋代碼
$objPHPExcel->getActiveSheet() -> setTitle('SetExcelName');
$objPHPExcel-> setActiveSheetIndex(0);
$objWriter = $iofactory -> createWriter($objPHPExcel, 'Excel2007');
$objWriter -> save('SetExcelName.xlsx');
//導出代碼
// $objPHPExcel->getActiveSheet() -> setTitle('SetExcelName');
// $objPHPExcel-> setActiveSheetIndex(0);
// $objWriter = $iofactory -> createWriter($objPHPExcel, 'Excel2007');
// $filename = 'SetExcelName.xlsx';
// header('Content-Type: application/vnd.ms-excel');
// header('Content-Type: application/octet-stream');
// header('Content-Disposition: attachment; filename="' . $filename . '"');
// header('Cache-Control: max-age=0');
// $objWriter -> save('php://output');
?>

⑸ php怎麼讀取excel 文件數據並輸出

PHPExcel

PHPExcel是用來操作Office Excel 文檔的一個PHP類庫,它基於微軟的OpenXML標准和PHP語言。可以使用它來讀取、寫入不同格式的電子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

//獲取上傳的excel臨時文件
$path=$_FILES["file"]["tmp_name"];
//將臨時文件移動當前目錄,可自定義存儲位置

move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//將獲取在伺服器中的Excel文件,此處為上傳文件名
$path=$_FILES["file"]["name"];
//調用readExcel函數返回一個
二維數組
$exceArray=readExcel($path);

//創建一個讀取
excel函數
functionreadExcel($path){
//引入PHPExcel類庫
include'Classes/PHPExcel.php';
include'Classes/PHPExcel/IOFactory.php';

$type='Excel5';//設置為Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader=PHPExcel_IOFactory::createReader($type);
$xlsReader->setReadDataOnly(true);
$xlsReader->setLoadSheetsOnly(true);
$Sheets=$xlsReader->load($path);
//開始讀取上傳到伺服器中的Excel文件,返回一個
二維數組
$dataArray=$Sheets->getSheet(0)->
toArray();
return$dataArray;
}

⑹ 原生PHP代碼實現excel導入,並添加數據到資料庫.

我用的代碼是:
<?
//連接資料庫文件
$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);
}
?>

--------------------------------------------------------------------------------
phpexcel或者pear的一個組件 ,國內有一個excelclass的插件
都是用來處理excel的,前2個功能都比較強大,對編碼的支持也都不錯,推薦使用pear的那個,名字好像叫spreadsheet reader

phpexcel比較費資源,不過並不是所有的excel都能讀取

樓主可以到這里去看看 pear.php.net
--------------------------------------------------------------------------------
頂樓上的回答~~順便接個分!嘿嘿
--------------------------------------------------------------------------------
AdO直接上傳

注意有些字元mysql或ADO可能不支持
--------------------------------------------------------------------------------
首先確認你的資料庫是什麼編碼的,以utf-8為例,
你首先打開excel 文件,然後保存,選擇為另存為.csv文件。
然後用文本編輯器打開.csv文件,另存為utf-8的csv
然後你寫php 可以使用php 的getcsv 打開(這樣確保你有的欄位中含有,而導致解析錯誤),然後把解析的結果導入到資料庫中。
然後完了。

⑺ PHP鐢熸垚Excel鎶ヨ〃鐨勬柟娉

PHP鐢熸垚Excel鎶ヨ〃
?php
    $path = '/usr/share/pear'; // 浣犺嚜瀹氫箟鐨 PEAR 璺寰
    set_include_path(get_include_path() . PATH_SEPARATOR . $path); // 璁劇疆 PHP 鐜澧冨彉閲忚礬寰勪負闄 php.ini 榛樿ょ殑浠ュ, 鍐嶅姞涓婁綘鑷瀹氫箟鐨 PEAR 璺寰
    require '/usr/share/pear/Spreadsheet/Excel/Writer.php'; // 鍖呭惈 PEAR::Spreadsheet_Excel_Writer 綾繪枃浠
    $name = 'atyu30';
    $work = $_POST['file_body'];
    $num = '10';
    $filename = $_POST['file_name'];
    $name_suffix01 = '_鎶ュ憡.xls';
    $name_suffix02 = iconv('utf-8','gb2312',$name_suffix01);
$workbook = new Spreadsheet_Excel_Writer(); // 瀹炰緥鍖 PEAR::Spreadsheet_Excel_Writer 綾
    $workbook-send($filename.$name_suffix02); // 鍙戦 Excel 鏂囦歡鍚嶄緵涓嬭澆
    $workbook-setVersion(8);
    $worksheet = $workbook-addWorksheet('sheet-1'); // 鍔犲叆涓涓宸ヤ綔琛 sheet-1
    $worksheet-setInputEncoding('utf-8'); // 鎸囧畾琛岀紪鐮
    $data = array(
    array('濮撳悕', '鑺傜洰娓呭崟', '涓婁紶鏁伴噺'),
    array($name, $work, $num),
    array($name, $work, $num),
    );
    for ($row = 0; $row count($data); $row ++) {
for ($col = 0; $col count($data[0]); $col ++) {
    $worksheet-writeString($row, $col, $data[$row][$col]); // 鍦 sheet-1 涓鍐欏叆鏁版嵁
}
     }
$worksheet = $workbook-addWorksheet('sheet-2'); // 鍔犲叆涓涓宸ヤ綔琛 sheet-2
    $worksheet-setInputEncoding('utf-8'); // 鎸囧畾琛岀紪鐮
    $data = array(
array('濮撳悕', '鑺傜洰娓呭崟', '涓婁紶鏁伴噺'),
array($name, $work, $num),
array($name, $work, $num),
    );
    for ($row = 0; $row count($data); $row ++) {
for ($col = 0; $col count($data[0]); $col ++) {
    $worksheet-writeString($row, $col, $data[$row][$col]); // 鍦 sheet-2 涓鍐欏叆鏁版嵁
}
    }
$workbook-close(); // 瀹屾垚涓嬭澆
   echo $name;
   ?

閱讀全文

與php編輯excel表格相關的資料

熱點內容
java排序演算法穩定 瀏覽:976
為什麼app搜不到蜻蜓fm 瀏覽:875
估演算法有哪些 瀏覽:374
androidx86橫屏 瀏覽:701
文怡用的運動app是什麼 瀏覽:257
治癒解壓英文伴奏 瀏覽:156
兄弟連php課件 瀏覽:983
營業廳app怎麼退套餐 瀏覽:185
mac和win編程哪個好 瀏覽:199
winrar自解壓執行命令 瀏覽:305
安卓fps是什麼文件夾 瀏覽:81
文件夾老是閃動什麼原因 瀏覽:768
ota伺服器需要什麼配置 瀏覽:867
離群點演算法matlab代碼 瀏覽:660
秒錶plc編程 瀏覽:131
王的命令更新時間 瀏覽:966
怎麼給APP鎖住 瀏覽:944
aloha防碰撞演算法 瀏覽:317
程序員怎麼學習游戲 瀏覽:228
vue源碼二次開發難嗎 瀏覽:311